目的

我正在建立一个FBA(无界面背景应用程序)。其他应用程序(客户端)使用NSDistributedNotificationCenter向FBA注册。当客户端注册时,我希望能够直接在客户端对象上调用消息。

首要问题:

当客户端发布请求注册的通知时,我最初想为客户端设置userInfo键。


  [NSValue valueWithPointer:self]; //
  自我是客户应用程序


但是,发布通知时,会生成一条错误消息,说明userInfo无法序列化。

问题2:
我通过给userInfo一个NSNumber来创建了一个解决方法。


  [NSNumber
  numberWithUnsignedInteger:(NSUInteger)self];


现在,FBA在收到通知时会接收适当的指针。但是,当我尝试访问对象(客户端)时,会生成EXEC_BAD_ACCESS错误。

因此,我想我的问题是,我如何才能访问另一个内存空间?我是否必须以某种方式创建共享内存空间?这可能吗?我采用这种设计模式会朝错误的方向迈进吗?

谢谢。

最佳答案

来回发送通知绝对是最简单的解决方案,只要它对您有用。

但是,如果您需要更多,可可可通过NSProxy等支持分布式对象。见http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DistrObjects/DistrObjects.html#//apple_ref/doc/uid/10000102-SW1

关于objective-c - 共享一个Cocoa FBA实例(非Faceace后台应用程序或简称为Agent),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5222568/

10-12 15:32
查看更多