【问题标题】:Creating NSDistantObject创建 NSDisantObject
【发布时间】:2023-03-23 14:46:01
【问题描述】:

我有两个应用程序“A”和“B”,需要做一些 ipc。如果进程“A”尚未运行,则启动进程“B”。在进程“A”中,我创建了NSConnectionregisterName:。在进程 'B' 中,我通过调用 rootProxyForConnectionWithRegisteredName: 获取远程对象。并且它将客户端对象指针设置为远程对象,以便进程“A”使用该对象来调用客户端对象方法。在进程“B”启动并建立连接之前,_clientObj 为零。我可能会收到针对_clientObj 的事件。


@interface Server : NSObject {
    @private
    id _clientObj;
}

问题:有没有办法让我将_clientObj 设为NSDistantObject 并保存所有消息,直到构造_clientObj

【问题讨论】:

    标签: cocoa ipc nsconnection


    【解决方案1】:

    您请求的功能无法直接使用,但您可以创建一个 NSDistantObject 的子类,该子类捕获传入的方法调用并将它们放入队列中,直到连接变为有效。一旦连接变得有效,它就可以出列并转发所有存储的方法调用。可以说,任何进一步的方法调用都将被“实时”转发。

    查看此代码作为如何创建 NSDistantObject 的子类以执行我上面描述的操作的可能示例。

    GTMTransientRootProxy.m, GTMTransientRootProxy.h

    此代码在连接断开时静默吞下 NSDistantObject 上的方法调用,但您可以扩展它以在停机期间将方法调用排队。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-13
      • 2010-11-04
      • 1970-01-01
      • 2014-07-14
      • 2015-04-16
      • 2016-03-10
      • 2021-09-14
      • 1970-01-01
      相关资源
      最近更新 更多