2012-08-06 56 views
2

我拥有一个笔尖文件的NSWindowViewController。 nib文件中的一个对象是NSTableView,由NSTableViewController(也是nib的一部分)管理。归档/解除NSTableViewController数据的最佳做法?

我想要实现NSCoding协议保存了所有的模型数据,其中一些包含在NSTableViewController(我将称之为TVC的简称)内。存档整个TVC似乎是错误的答案,因为当它未被存档时,它不会连接到笔尖。虽然我可以用编程方式将所有东西重新连接起来......这看起来非常糟糕。

我能有NSWindowViewController抢表数据出TVC的,但是这将意味着我将不得不去揭露所有的实例变量,这也似乎是错误的解决方案。

请告诉我归档/最好的方式解除存档存储在TVC中的数据?

回答

0

表视图控制器应该有存储你的数据,或者如果你的应用程序很简单,你可能有存储在表视图控制器数组或字典,模型数据模型的参考。无论是数据还是字典,不管是应该归档的数据,还是表视图控制器。

+0

我同意(这是由表视图控制器存储的)阵列是需要被存档的内容。但电视广告不能自行存档,因为存档方法将存储TVC本身。如果TVC不能/不应该实现initWithCoder:,那么它不应该实现encodeWithCoder:或者。因此,我不得不将数组ivar升级到@property,以便其他人可以偷看并归档它。我只是想知道是否还有另一种我错过的方法,并不涉及将伊娃变成财产。 – wrjohns 2012-08-07 03:31:20

+0

我添加了几个方法来打包和解密私有数据到字典中。然后调用方法将该关键字从归档器中移出。 – wrjohns 2012-08-08 20:15:49