首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSCoding与ostream

NSCoding与ostream
EN

Stack Overflow用户
提问于 2010-04-22 19:53:16
回答 1查看 392关注 0票数 0

有比使用ObjC对象更好的序列化/NSKeyedArchive对象的方法吗?

我需要通过一个C++ std:ostream类对象来分发对象,这样才能将对象放到另一台计算机上。

这个对象有超过122个不同类型的成员.想让我

代码语言:javascript
复制
[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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-04-22 23:50:05

使用NSCoding绝对是正确的方法。如果您不想键入所有的NSCoding-related样板(我同意,这很痛苦),请看一下配饰器,它可以为您编写它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2693980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档