是否有比使用/ NSKeyedArchive更好的序列化ObjC对象的方法?
我需要通过C ++ std:类似于ostream的对象分发对象以放在另一台计算机上。
该对象有超过122个不同类型的成员......我想要
[coder encodeObject: (id) forKey: @"blah"];
所有人......
有没有人有一个很好的Perl脚本,至少会写出来?我甚至不知道它包含的对象是否实现,这意味着这可能会变成一个巨大的丑陋混乱,因为我无法改变对象的来源 - 我将不得不继承&将@interface
添加到其中......
还是我愚蠢? Apple's guide对我没有帮助,因为归档到XML不会很好地通过ostream。
有更好的方法吗?
-S!
[编辑1]
所以我查看了NSCoding,我的类包含通用的NSManagedObjects
...,它们不符合<NSCoding>
。我已经尝试使用[here] [2]中找到的面向方面编程 - 但这会导致在运行时无限递归。 (至少我认为104795调用[id encodeWithCoder:]
的调用堆栈是。
另外,我不能在我加载时将<NSCoding>
添加到类中,因为它的成员是导入框架的对象。我不能只是添加协议,这就是为什么我认为面向方面的东西会起作用。
我拥有的最后一个(也是可怕的)想法是将我需要的每个类子类化,并在那里实现协议。我可以预见的一个巨大障碍是,如果类包含未在框架中公开的类的NSArrays。然后我沉没了。
有更好的方法吗?我觉得这是一个设计时决定,现在添加此功能为时已晚。
帮助...
PS
这整个反垃圾邮件的东西限制链接很糟糕。我该怎么问智能问题??
[2]: http:/ /davedelong.com/blog/2009/04/13/aspect-oriented-programming-objective-c#comment-803