gpt4 book ai didi

objective-c - 使用 NSXPCConnection 时如何同步等待回复 block

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

我正在使用 NSXPCConnection,并且我的一个接口(interface)调用有一个回复 block ,如下所示:

- (void)addItem:(NSData *) withLabel:(NSString *) reply:(void (^)(NSInteger rc))reply;

我这样称呼:

__block NSInteger status;
[proxy addItem:data withLabel:@"label" reply:^(NSInteger rc)
{
status = rc;
}
];

我的理解是,回复 block 异步运行,并且可能在方法返回之后运行。

我想同步测试返回码,最好的方法是什么?

<小时/>

进一步澄清上面的代码片段:proxy 对象是使用 remoteObjectProxy 方法从 NSXPCConnection 对象获取的远程对象。这是一个重要的细节,因为这会影响调用回复 block 的队列。

最佳答案

我刚刚找到了一种可能更好的方法:

创建远程对象时使用synchronousRemoteObjectProxyWithErrorHandler而不是remoteObjectProxy

不需要信号量或组。

关于objective-c - 使用 NSXPCConnection 时如何同步等待回复 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35305003/

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