gpt4 book ai didi

objective-c - 追踪执行executeFetchRequest时导致卡住的 block /死锁

转载 作者:行者123 更新时间:2023-12-03 16:46:38 36 4
gpt4 key购买 nike

我有一个应用程序经常永久卡住。发生这种情况时,我在 Xcode 中单击“暂停”,发现在主线程上它总是停在在 MOC 上执行获取请求的代码行处。我还在左侧的线程列表中看到输出__psynch_mutexwait + 17。这让我假设应用程序陷入僵局或由于某种原因 MOC 被阻止。

我的第一直觉是我可能正在非主线程上执行提取请求,因此我放入日志进行检查,但事实并非如此。所有提取都发生在主线程上。

我怎样才能追踪到这里可能被阻止的内容?我还应该在堆栈跟踪中寻找更多内容吗?

我在其他线程上设置在主线程上获取的对象的属性是否有问题?即,在 main 上获取 objectA,然后将其传递给另一个线程并执行类似 objectA.someNumber = [NSNumber numberWithInt:2] 的操作?

最佳答案

Is it a problem that I am setting properties of objects fetched on the main thread on other threads? ie, fetch objectA on main but then pass it to another thread and do something like objectA.someNumber = [NSNumber numberWithInt:2] ?

是的!我已经尝试过这个。

当你在ThreadA中取出ObjA,然后将其传递给ThreadB进行某些操作时,就会陷入死锁。

关于objective-c - 追踪执行executeFetchRequest时导致卡住的 block /死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16132122/

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