在iOS的NSUserDefault中存储自定义对象
我想在NSUserDefaults中存储自定义对象。 我阅读了Apple文档,知道NSUserDefaults只能存储属性列表,例如在iOS的NSUserDefault中存储自定义对象,ios,Ios,我想在NSUserDefaults中存储自定义对象。 我阅读了Apple文档,知道NSUserDefaults只能存储属性列表,例如 NSArray, NSNumber, NSData, NSDate, NSDictionary and NSString. 如果我想存储自定义对象,那么我需要实现NSCoding协议 我需要有人能为下面的课程澄清一点: @interface MyDrawBlock : BlockInfo { CGPoint _blockUpLeft; CASha
NSArray, NSNumber, NSData, NSDate, NSDictionary and NSString.
如果我想存储自定义对象,那么我需要实现NSCoding协议
我需要有人能为下面的课程澄清一点:
@interface MyDrawBlock : BlockInfo
{
CGPoint _blockUpLeft;
CAShapeLayer* _shapeLayer;
int _blockColorFlag;
int _strokeColorFlag;
}
我班上有CAShapeLayer*\u shaperLayer。
如何在NSUserDefaults中存储MyDrawBlock
如果我实现了NSCoding协议,那么我如何存储CAShapeLayer*_shapeLayer。尝试使用
NSKeyedArchiver
和NSKeyedArchiver
下面看一个类似问题的答案:
你可以;t在NSUserDefualts中存储文件。NSUserDefaults用于存储简单键/数组。这是不重复的。我的目标与给出的答案不同。请仔细阅读我的问题。这看起来像一个问题。退一步,告诉我们你想做什么,以及为什么你认为你需要这样做。通常,如果您试图对视图对象进行编码(在本讨论中,CAShapeLayer是一个视图对象),那么您就做错了。视图对象用于显示内容,而不是保存状态。可能有更好/更合适的方法来完成您试图完成的任务。感谢您的快速重播,但我的类包含CAShapeLayer*\u Shapelayer没有问题,但我不明白您为什么不能对CAShapeLayer进行编码。只需将其编码为对象。谢谢,实际上它对CAShaperLayer@JoobLee,请注意,在用户默认值中存储形状层是一个坏主意。(见我对你问题的评论)