如何使用 NSUserDefault 将 SKShapeNode 存储到系统默认值
How to store SKShapeNode to system defaults using NSUserDefault
现在我正在开发基于 SKScene
的应用程序。我想将一些 SKShapeNode
存储到系统默认值,以便用户在完全关闭后重新打开应用程序时仍然可以看到它们。我将 SKShapeNodes
存储在 NSMutableDictionary
中。我尝试使用 setObjectForKey
将其存储到 NSUserDefault
但它给了我错误:
Property list invalid for format: 200 (property lists cannot contain objects of type 'CFType')
。
因为我正在尝试向其中添加 SKShapeNode
。那么如何才能像NSUserDefault
那样存储呢?非常感谢!!
这是我的代码:
myNode = [SKShapeNode shapeNodeWithCircleOfRadius:radius];
[myNode setPhysicsBody:[SKPhysicsBody bodyWithCircleOfRadius:radius]];
myNode.fillColor = [uicolor 绿色颜色];
myNode.lineWidth = 1.0;
[我的节点setPosition:positionInScene1];
myNode.antialiased = 是;
myNode.glowWidth = 0.0;
myNode.physicsBody.allowsRotation = 否;
myNode.physicsBody.dynamic = 是;
myNode.physicsBody.restitution = 0.3;
[mainLists myNode forKey:someKey];(mainList 是一个 nsdictionary)
NSUserDefault *store = [NSUserDefault standardDefault];
[store setObject:mainList forKey:@"mainList"];
[商店同步];
你可以试试
[NSKeyedArchiver -archivedDataWithRootObject:]
首先将可序列化对象保存到 NSData,然后将数据保存到 userDefault。
当你想读取数据时,你应该使用NSKeyedUnarchiver解码数据到SKShapeNode
你可以向NSKeyedArchiver/NSKeyedUnarchiver 学习
或者只能保存节点
的属性
现在我正在开发基于 SKScene
的应用程序。我想将一些 SKShapeNode
存储到系统默认值,以便用户在完全关闭后重新打开应用程序时仍然可以看到它们。我将 SKShapeNodes
存储在 NSMutableDictionary
中。我尝试使用 setObjectForKey
将其存储到 NSUserDefault
但它给了我错误:
Property list invalid for format: 200 (property lists cannot contain objects of type 'CFType')
。
因为我正在尝试向其中添加 SKShapeNode
。那么如何才能像NSUserDefault
那样存储呢?非常感谢!!
这是我的代码: myNode = [SKShapeNode shapeNodeWithCircleOfRadius:radius]; [myNode setPhysicsBody:[SKPhysicsBody bodyWithCircleOfRadius:radius]]; myNode.fillColor = [uicolor 绿色颜色]; myNode.lineWidth = 1.0; [我的节点setPosition:positionInScene1]; myNode.antialiased = 是; myNode.glowWidth = 0.0; myNode.physicsBody.allowsRotation = 否; myNode.physicsBody.dynamic = 是; myNode.physicsBody.restitution = 0.3; [mainLists myNode forKey:someKey];(mainList 是一个 nsdictionary) NSUserDefault *store = [NSUserDefault standardDefault]; [store setObject:mainList forKey:@"mainList"]; [商店同步];
你可以试试
[NSKeyedArchiver -archivedDataWithRootObject:]
首先将可序列化对象保存到 NSData,然后将数据保存到 userDefault。
当你想读取数据时,你应该使用NSKeyedUnarchiver解码数据到SKShapeNode
你可以向NSKeyedArchiver/NSKeyedUnarchiver 学习 或者只能保存节点
的属性