目的
我正在建立一个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/