有比使用ObjC对象更好的序列化/NSKeyedArchive对象的方法吗?
我需要通过一个C++ std:ostream类对象来分发对象,这样才能将对象放到另一台计算机上。
这个对象有超过122个不同类型的成员.想让我
[coder encodeObject: (id) forKey: @"blah"];对他们所有人..。
有没有人有一个好的Perl脚本,至少可以写出它呢?我甚至不知道它包含的对象是否包含实现,这意味着这可能会变成一个巨大的混乱,因为我不能改变对象的来源-我将不得不继承和添加@interface到它.
还是我太笨了?苹果指南帮不了我,因为存档到XML并不能很好地通过ostream。
有更好的方法吗?
-S!
编辑1
所以我看了NSCoding,我的类包含了泛型NSManagedObjects.这不符合<NSCoding>。我尝试使用这里找到的面向方面的编程,但这导致了运行时的无限递归。(至少我假设对[id encodeWithCoder:]的调用堆栈为104795次。
此外,我不能仅仅将<NSCoding>添加到类中,因为我正在加载它的成员是导入框架的对象。我不能只是添加协议,这就是为什么我认为面向方面的东西会起作用。
最后一个(也是糟糕的)想法是对我需要的每个类进行子类化,并在那里实现协议。我可以忽略的一个巨大障碍是,这些类是否包括未在框架中公开的类的NSArrays。我就完蛋了。
有更好的方法吗?我觉得这是一个设计时的决定,现在加入这个功能已经太晚了。
救命..。
PS
这整个反垃圾邮件与限制链接烂。我怎么能问些聪明的问题呢?
2: http: /davedelong.com/blog/2009/04/13/aspect-oriented-programming-objective-c#comment-803
发布于 2010-04-22 23:50:05
使用NSCoding绝对是正确的方法。如果您不想键入所有的NSCoding-related样板(我同意,这很痛苦),请看一下配饰器,它可以为您编写它。
https://stackoverflow.com/questions/2693980
复制相似问题