现在我正在开发基于SKScene
的应用。我想将一些SKShapeNode
存储到系统默认值中,这样用户在完全关闭后重新打开应用程序时仍然可以看到它们。我将SKShapeNodes
存储在NSMutableDictionary
中。我尝试使用NSUserDefault
将其存储到setObjectForKey
,但它给了我错误:
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 greenColor]; myNode.lineWidth = 1.0; [myNode setPosition:positionInScene1]; myNode.antialiased = YES; myNode.glowWidth = 0.0; myNode.physicsBody.allowsRotation = NO; myNode.physicsBody.dynamic = YES; myNode.physicsBody.restitution = 0.3; [mainLists myNode forKey:someKey];(mainList是nsdictionary) NSUserDefault * store = [NSUserDefault standardDefault]; [store setObject:mainList forKey:@" mainList"]; [store sychronize];
答案 0 :(得分:0)
你可以尝试
[NSKeyedArchiver -archivedDataWithRootObject:]
首先将可序列化对象发送到NSData,然后将数据保存到userDefault。
如果要读取数据,则应使用NSKeyedUnarchiver将数据解码为SKShapeNode
您可以向NSKeyedArchiver/NSKeyedUnarchiver 学习 或者您只能保存节点的属性