加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – NSCoder和/或NSKeyedUnarchiver如何处理同一对象

发布时间:2020-12-16 10:20:14 所属栏目:百科 来源:网络整理
导读:我想知道NSCoder如何处理下次解码时由多个对象共享和编码的对象.它会制作对象的两个副本,还是会解码并在解码它的所有其他对象之间共享一个对象? 我提供了一个类似下面这种情况的小例子. 例: 应用程序启动 对象A和对象B将对象C设置为其委托 应用程序收到终
我想知道NSCoder如何处理下次解码时由多个对象共享和编码的对象.它会制作对象的两个副本,还是会解码并在解码它的所有其他对象之间共享一个对象?

我提供了一个类似下面这种情况的小例子.

例:

>应用程序启动
>对象A和对象B将对象C设置为其委托
>应用程序收到终止通知.
>对象A和对象B编码自己及其所有对象(包括其委托)
>应用程序关闭并重新启动
>对象A和对象B解码自身及其所有对象(包括其委托)

对象A和对象B在步骤6之后是否共享相同的解码对象,或者它们各自都有自己的副本?

解决方法

他们将共享对同一对象的引用(除非您不遗余力地改变该行为).

即NSCoding可以处理完全循环的,全向的,复杂连接的对象图(只要所有图形参与者都正确支持NSCoding).

请注意,编码委托是非常不典型的.代理通常在无政府主义之后连接到未归档的对象图,代理充当归档模型层(或归档视图层,在IB的情况下)之间的一种管道 – 故事对于XIB文件来说更复杂.但是……足够接近)和你的应用程序的其余部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读