ios – 在BG全局队列中设置弱属性时意外的EXC_BAD_ACCESS

ios – 在BG全局队列中设置弱属性时意外的EXC_BAD_ACCESS,第1张

概述在我的ChatMessage类中,我有对Chat类的弱引用 @interface ChatMessage : NSObject@property (nonatomic, weak) Chat *chat; 我在全局队列的Chat实现中进行以下初始化 ChatMessage *chatMessage = [[ChatMessage alloc] initWithDictionary:dictio 在我的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 0x4c008be5Triggered by Thread:  17Thread 17 Crashed:0   libobjc.A.dylib                 0x39f535d2 cache_getImp + 181   libobjc.A.dylib                 0x39f4e9a8 lookUpImpOrForward + 282   libobjc.A.dylib                 0x39f4e942 lookUpImpOrNil + 223   libobjc.A.dylib                 0x39f48aca class_getmethodImplementation + 304   libobjc.A.dylib                 0x39f5833a weak_register_no_lock + 385   libobjc.A.dylib                 0x39f586fa objc_storeWeak + 1066   MyMessenger                     0x000d366c -[ChatMessage setChat:]7   MyMessenger                 0x001173bc -[Chat getMessagesForPage:]8   libdispatch.dylib               0x3a432d50 _dispatch_call_block_and_release + 89  libdispatch.dylib                0x3a438684 _dispatch_root_queue_drain + 22410  libdispatch.dylib               0x3a4388d8 _dispatch_worker_thread2 + 5211  libsystem_pthread.dylib         0x3a563c14 _pthread_wqthread + 29612  libsystem_pthread.dylib         0x3a563ad8 start_wqthread + 4

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

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

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

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

总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1023382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存