gpt4 book ai didi

iphone - NSOperation performSelectorOnMainThread崩溃

转载 作者:行者123 更新时间:2023-12-03 15:52:56 27 4
gpt4 key购买 nike

我正在从NavigationController的 subview 中调用NSOperation。

MyOperation *op = [[MyOperation alloc] target:self action:@selector(didFinishOperation)];

该操作会从服务器加载一些数据,进行解析,然后发送
[target performSelectorOnMainThread:action withObject:nil waitUntilDone:YES];

工作完成时。这通常可以正常工作...

问题是当我在NSOperation执行其工作时从导航 Controller 上按后退按钮时,该应用程序崩溃,因为该操作引用了一个已释放实例。

我尝试保留该操作-但仍然崩溃...

提前致谢

最佳答案

克里斯走在正确的道路上,但是它并没有涵盖您尝试取消操作时操作已完成并且仍然会崩溃的情况。如果操作正在main中执行,则取消将不会生效。

不过,请在尝试销毁目标之前尝试将其取消,但是在尝试向其发送消息之前,请测试target是否仍然存在。另外,在尝试发送消息之前,请检查是否已取消:

if ( self.isCancelled ) return;

关于iphone - NSOperation performSelectorOnMainThread崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1733623/

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