HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 在BG全局队列中设置弱属性时意外的EXC_BAD_ACCESS大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的Chatmessage类中,我有对Chat类的弱引用

@interface Chatmessage : NSObject

@property (nonatomic,weak) Chat *chat;

我在全局队列的Chat实现中进行以下初始化

Chatmessage *chatmessage = [[Chatmessage alloc] initWithDictionary:Dictionary];
chatmessage.chat = self;

并在第二行得到非常奇怪的错误

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x4c008be5
triggered by Thread:  17

Thread 17 Crashed:
0   libobjc.A.dylib                 0x39f535d2 cache_getImp + 18
1   libobjc.A.dylib                 0x39f4e9a8 lookUpImpOrForWARD + 28
2   libobjc.A.dylib                 0x39f4e942 lookUpImpOrNil + 22
3   libobjc.A.dylib                 0x39f48aca class_getmethodImplementation + 30
4   libobjc.A.dylib                 0x39f5833a weak_register_no_lock + 38
5   libobjc.A.dylib                 0x39f586fa objc_storeWeak + 106
6   Mymessenger                     0x000d366c -[Chatmessage setChat:]
7   Mymessenger                 0x001173bc -[Chat getmessagesForPage:]
8   libdispatch.dylib               0x3a432d50 _dispatch_call_block_and_release + 8
9  libdispatch.dylib                0x3a438684 _dispatch_root_queue_drain + 224
10  libdispatch.dylib               0x3a4388d8 _dispatch_worker_thread2 + 52
11  libsystem_pthread.dylib         0x3a563c14 _pthread_wqthread + 296
12  libsystem_pthread.dylib         0x3a563ad8 start_wqthread + 4

有人遇到设置弱属性的问题吗?

解决方法

似乎问题是从不同的线程同时访问这个弱属性.

属性的弱点不允许我们忽略多线程分配.

使用数据源的安全规则是在@L_675_10@选定的线程内同步更改它.

大佬总结

以上是大佬教程为你收集整理的ios – 在BG全局队列中设置弱属性时意外的EXC_BAD_ACCESS全部内容,希望文章能够帮你解决ios – 在BG全局队列中设置弱属性时意外的EXC_BAD_ACCESS所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。