gpt4 book ai didi

cocoa - 使 NSConnection 停止,直到找到注册名称的连接

转载 作者:行者123 更新时间:2023-12-03 17:16:51 24 4
gpt4 key购买 nike

有没有办法让 NSConnection 搜索具有注册名称的连接,例如单独的线程,或者在运行循环中调度,并在建立连接时使用回调?目前我正在使用

[NSConnection connectionWithRegisteredName:kRemotePreferencesDOName 主机:nil]

但如果未找到连接,这只会返回(我认为为零),而不是停止或以其他方式给出回调。虽然这对于服务器-客户端关系来说是有意义的,但“服务器”和“客户端”都只是应用程序,无论对方如何,它们都可能随时打开,也可能不打开,因此客户端很可能会被当服务器启动(并注册其名称)时打开并执行某些操作。此时,理想情况下客户端将收到通知/将创建到服务器的连接。

如果有帮助,这是系统首选项首选项 Pane 控制目标(仅后台)应用程序的 NSUserDefaults 的方法的一部分,当用户打开首选项 Pane 时,该应用程序可能正在运行,也可能不运行。

最佳答案

只需使用 while 循环来等待远程对象准备就绪。如果应用程序想要在等待连接时执行其他操作,请使用线程。

NSDistantObject *pObj = nil;

while(nil == pObj)
{
pObj = [[NSConnection rootProxyForConnectionWithRegisteredName:kRemotePreferencesDOName
host:nil] retain];

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1.]];
}

关于cocoa - 使 NSConnection 停止,直到找到注册名称的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4175228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com