我无法解决下一个问题:我有2个应用程序使用分布式对象相互通信。假设应用程序A来自应用程序B的调用- (void)updateState:(State *)state
方法
@interface State : NSObject <NSCopying, NSCoding>...
在B应用中调用updateState:
方法时,我NSDistantObject
代表被发送对象而不是State
对象。在Friday Q&A中,我发现如果对象符合NSCoding
协议,则应该发送对象&#39;而不是代理,但是,我仍然收到代理。我在Apple文档中找不到任何关于它的信息。也许有人确实知道如何发送对象而不是代理,以及分布式对象系统在序列化和发送对象以及何时代理时如何决定?
答案 0 :(得分:0)
我找到了!此外,您应该在要传递的对象中实现- (id)replacementObjectForPortCoder:(NSPortCoder *)coder
。有关此方法的更多信息,请参阅Apple documentation。
Apple引用documentation isBycopy
的{{1}}和isByref
的神秘NSPortCoder
,但归根结底是bycopy
和byref
方法确定的信息参数关键字。有关此关键字的更多信息,请参阅here。