我有两个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/

10-10 21:15