【发布时间】:2023-03-06 08:52:02
【问题描述】:
我正在使用 XMPPFramework,在它的代码中有这样的方法:
- (NSDictionary *)occupants
{
if (dispatch_get_current_queue() == moduleQueue)
{
return occupants;
}
else
{
__block NSDictionary *result;
dispatch_sync(moduleQueue, ^{//IT BLOCKS HERE, WITHOUT MESSAGE
result = [occupants copy];
});
return [result autorelease];
}
}
[编辑] 它不一致地阻塞,并非总是如此,因为应用程序没有做任何事情我暂停它,我看到线程已经停止在那里,它永远不会继续执行。 怎么了?有什么想法吗?
谢谢
【问题讨论】:
-
你怎么知道它在那里崩溃了?
-
显示确切的错误/崩溃消息和回溯。
-
依赖于ivars的函数应该使用断言,你试过
NSParameterAssert(moduleQueue);吗? -
好吧,它不会真的崩溃,对不起,我会编辑我的帖子...
标签: objective-c grand-central-dispatch xmppframework