archivedObject(ofClass:from:)对[SCNNode]的处理与SCNNode不同。
创始人
2024-09-12 06:30:25
0

在使用archivedObject(ofClass:from:)方法时,在存档和解档期间对[SCNNode]进行特殊处理即可。以下是可能的示例代码:

// 编写类扩展以在存档和解档时特殊处理SCNNode数组
extension Array where Element == SCNNode {
    
    enum CodingKeys: String, CodingKey {
        case nodes
    }
    
    public func encode(to encoder: Encoder) throws {
        var container = encoder.container(keyedBy: CodingKeys.self)
        try container.encode(self, forKey: .nodes)
    }
    
    public init(from decoder: Decoder) throws {
        let container = try decoder.container(keyedBy: CodingKeys.self)
        self = try container.decode([SCNNode].self, forKey: .nodes)
    }
}

// 存档一个包含SCNNode数组的对象
let scene = SCNScene()
let nodes = [SCNNode(), SCNNode()]
scene.rootNode.addChildNode(nodes[0])
scene.rootNode.addChildNode(nodes[1])

let data = try NSKeyedArchiver.archivedData(withRootObject: nodes, requiringSecureCoding: false)
UserDefaults.standard.set(data, forKey: "nodes")

// 解档该对象
if let data = UserDefaults.standard.data(forKey: "nodes") {
    let nodes = try NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? [SCNNode]
    scene.rootNode.addChildNode(nodes![0])
    scene.rootNode.addChildNode(nodes![1])
}

在代码示例中,我们编写了一个扩展以在存档和解档期间对SCNNode数组进行特殊处理。接下来,我们可以将包含SCNNode数组的对象存档到UserDefaults,并在需要时通过解档将其还原。

相关内容

热门资讯

分享一款!雀友会广东潮汕麻雀开... 分享一款!雀友会广东潮汕麻雀开挂,天天贵阳游戏辅助,详细工具(有挂技巧)雀友会广东潮汕麻雀开挂透视方...
推荐一款!来几局是正规平台吗,... 推荐一款!来几局是正规平台吗,微乐小程序辅助器脚本,详细app(有挂秘诀)1、任何微乐小程序辅助器脚...
实测交流!福建13水源码,四川... 实测交流!福建13水源码,四川熊猫辅助,详细技巧(有挂方式)1、四川熊猫辅助破解器简单,四川熊猫辅助...
每日必看推荐!欢乐茶馆挂,微信... 每日必看推荐!欢乐茶馆挂,微信卡五星辅助器,详细挂(有挂讲解)微信卡五星辅助器辅助器是一种具有地方特...
解密关于!手游蛮王辅助,川南久... 解密关于!手游蛮王辅助,川南久久辅助,详细教程(的确有挂)1、进入游戏-大厅左侧-新手福利-激活码辅...
推荐十款!天蝎辅助,钱塘13挂... 推荐十款!天蝎辅助,钱塘13挂件,详细方法(有挂工具)1、钱塘13挂件有没有辅助教程、钱塘13挂件有...
盘点几款!丽水都莱破解器,边锋... 盘点几款!丽水都莱破解器,边锋小程序老友辅助,详细器(证实有挂)一、边锋小程序老友辅助游戏安装教程牌...
技术分享!乐酷大厅怎么安装,人... 技术分享!乐酷大厅怎么安装,人海大厅辅助插件,详细器(存在有挂)亲,关键说明,人海大厅辅助插件透视脚...
今日焦点!朋朋政和辅助,闲逸碰... 今日焦点!朋朋政和辅助,闲逸碰胡辅助,详细软件(有挂猫腻)1)闲逸碰胡辅助免费钻石:进一步探索闲逸碰...
重大通报!盛世辅助插件,皇豪互... 重大通报!盛世辅助插件,皇豪互众可以控制吗,详细app(真的有挂)1、每一步都需要思考,不同水平的挑...