0

我开发了两个使用 IPC 相互通信的应用程序。这是服务器端和客户端的代码:

服务器:

_distantObject = [[DistantObject alloc] init];
        
NSPort *serverPort = [NSMachPort port];
_proxyConnection = [[NSConnection alloc] initWithReceivePort:serverPort sendPort:serverPort];
[_proxyConnection setRootObject:_distantObject];
        
if (![_proxyConnection registerName:@"MyServer"]) {
            
   NSLog(@"ERROR: starting MyServer");
}

客户:

    DistantObject *remoteObject;
    NSConnection *theConnection = [NSConnection connectionWithRegisteredName:@"MyServer"
                                                                        host:nil];
    if (theConnection != nil) {
        
        remoteObject = (DistantObject *)[theConnection rootProxy];
        remoteObject.someValue = value;
    }

问题是它不适用于 OS X 10.6。但在 10.7、10.8 和 10.9 上完美运行。这是我在 10.6 上收到的错误:

__NSAutoreleaseNoPool():NSCFDictionary 类的对象 0x10031a0f0 自动释放,没有适当的池 - 只是泄漏

__NSAutoreleaseNoPool():NSCFArray 类的对象 0x100330b50 自动释放,没有适当的池 - 只是泄漏

结果客户端没有传递适当的值。

4

0 回答 0