当前位置:  开发笔记 > 编程语言 > 正文

你什么时候在iPhone上使用encodeWithCoder:和initWithCoder:?

如何解决《你什么时候在iPhone上使用encodeWithCoder:和initWithCoder:?》经验,为你挑选了3个好方法。

正如我在上述主题中提出的问题所述,为了说"好的,我需要encodeWithCoder:initWithCoder:为此实例化",您通常需要满足哪些要求?通常你可以写对象状态NSUserDefaults,所以我很好奇你的专家什么时候决定使用一个与另一个?



1> Ben Gottlieb..:

initWithCoder:在取消存档XIB文件时,操作系统使用; 如果你仔细观察,你会发现你initWithFrame:没有调用你在XIB中创建的视图; 他们会initWithCoder:打电话给他们.



2> Jens Alfke..:

用户默认值基本上是属性列表.属性列表类似于JSON,只能存储特定类型的数据 - NSString,NSNumber,NSData,NSDate,NSArray,NSDictionary.如果您尝试在用户默认值中存储任何其他内容,则会出现异常.属性列表也无法处理任意对象图,只能处理树.

您可以随时获取自定义状态并将其转换为属性列表兼容的数据结构,然后将其存储在用户默认值中; 但是你基本上实现了一个对象序列化机制,你也可以使用NSArchiver已经提供的更强大的机制.



3> rpetrich..:

NSCoder是实现序列化的标准Cocoa方法.有关详细信息,请参阅Apple的Cocoa Archives and Serializations Programming Guide for Cocoa.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有