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

在使用archivedObject(ofClass:from:)进行解档操作时,需要注意对于不同类型的对象需要分别处理。对于包含多个SCNNode的数组,需要使用unarchiver.decodeObject(of: [SCNNode].self, forKey: key)来解码;对于单个SCNNode对象,则需要使用unarchiver.decodeObject(of: SCNNode.self, forKey: key)。

示例代码如下:

// 保存场景 func saveScene() { // ... let sceneData = try NSKeyedArchiver.archivedData(withRootObject: scene, requiringSecureCoding: false) userDefaults.set(sceneData, forKey: "savedScene") }

// 加载场景 func loadScene() { // ...

if let sceneData = userDefaults.data(forKey: "savedScene"),
    let unarchiver = try? NSKeyedUnarchiver(forReadingFrom: sceneData) {
    // 解码场景
    if #available(iOS 12.0, *) {
        let scene = try? unarchiver.decodeTopLevelObject(forKey: NSKeyedArchiveRootObjectKey) as? SCNScene
    } else {
        let scene = unarchiver.decodeObject(of: SCNScene.self, forKey: NSKeyedArchiveRootObjectKey)
    }
    
    // 解码节点
    if #available(iOS 12.0, *) {
        let nodes = try? unarchiver.decodeTopLevelObject(forKey: "nodes") as? [SCNNode]
    } else {
        let nodes = unarchiver.decodeObject(of: [SCNNode].self, forKey: "nodes")
    }
    
    unarchiver.finishDecoding()
}

}

相关内容

热门资讯

七分钟科普!钱塘13水打牌,微... 七分钟科普!钱塘13水打牌,微扑克网页版辅助,雀神辅助在哪下载(有挂攻略);亲,关键说明,钱塘13水...
we poke软件免费版!手机... we poke软件免费版!手机德州软件透明挂,聚星扑克原来真的有挂(详细辅助挂教程);1、we po...
六分钟辅助!天涯手机麻将有挂吗... 六分钟辅助!天涯手机麻将有挂吗,wpk德州ai机器人,雀神辅助器免费版v3.0(有挂攻略)1、打开软...
微扑克这软件有问题!线上wpk... 微扑克这软件有问题!线上wpk德州软件透明挂,云扑克德州一直真的有挂(详细辅助黑科技教程)1、微扑克...
wpk俱乐部系统!手机德州软件... wpk俱乐部系统!手机德州软件透明挂,wpk德州果然真的有挂(详细智能ai代打教程)1、打开软件启动...
十分钟科普!胖猪竞技有外 挂没... 十分钟科普!胖猪竞技有外 挂没,德扑数据软件,广东雀神智能辅助软件(有挂细节)1、进入到胖猪竞技有外...
哈糖大菠萝可以弄的!红龙软件德... 哈糖大菠萝可以弄的!红龙软件德州扑克软件透明挂,wePokE一般真的有挂(详细辅助工具教程);1、哈...
七分钟辅助挂!闲逸游戏有辅助工... 七分钟辅助挂!闲逸游戏有辅助工具吗,欢乐棋牌有挂,微信雀神小程序能开挂吗(有挂细节)1、闲逸游戏有辅...
德扑ai人工智能!WPk软件透... 德扑ai人工智能!WPk软件透明挂,aapoKer一直真的有挂(详细辅助教程);1、玩家可以在德扑a...
9分钟辅助挂!九九互娱有挂吗,... 9分钟辅助挂!九九互娱有挂吗,德州alphax辅助,雀神辅助器插件(有挂细节)1、实时九九互娱有挂吗...