我有两个Cocoa-GUI-Applications(与ARC一起编译,没有沙箱)。
应用程序一具有以下功能:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Insert code here to initialize your application
CommController *cc = [CommController new];
NSConnection *theConnection;
theConnection = [NSConnection new];
[theConnection setRootObject:cc];
if ([theConnection registerName:@"MyServer"] == NO) {
/* Handle error. */
NSLog(@"Could not start server.");
}
}
而应用程序二具有以下功能:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
id theProxy;
NSConnection *theConnection;
theConnection = [NSConnection
connectionWithRegisteredName:@"MyServer"
host:nil];
theProxy = [theConnection rootProxy];
[theProxy setProtocolForProxy:@protocol(NetProto)];
}
来自第二个应用程序的调用
[theConnection rootProxy]
再也不会返回。如果我使用不推荐使用的
[NSConnection defaultConnection]
而不是[NSConnection new]
,它将起作用。因此,我正在寻找一种不受欢迎的方法来获取rootProxy。
最佳答案
肯·托马斯(Ken Thomases)提出的对NSConnection
对象的强烈引用有所帮助。
关于objective-c - 在NSConnections上调用rootProxy不会返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15390616/