我的应用程序偶尔崩溃,当我看到崩溃日志时,这就是我所看到的,我已经截断了剩下的部分,因为剩下的内容根据应用程序崩溃的位置而变化。
0 libobjc.A.dylib 0x32da1c98 objc_msgSend + 16
1 Foundation 0x338530ac NSKVOPendingNotificationCreate + 184
2 Foundation 0x33852fc8 NSKeyValuePushPendingNotificationPerThread + 56
3 Foundation 0x33831e5c NSKeyValueWillChange + 544
4 Foundation 0x3381e53c -[NSObject(NSKeyValueObserverNotification) willChangeValueForKey:] + 120
我现在要介绍一些背景
我有两个类,其中A有两个变量,B有3变量
我正在观察C类和D
由于应用程序中的业务逻辑流程不同,A类和B类中的变量会保持更改
有两个C类实例在应用程序的生命周期中存活,因为它们是tabBarcontroller应用程序中两个tab的rootController。
D的对象会根据用户点击应用程序的频率而频繁创建和销毁。
我在init中添加观察者并在dealloc中删除观察者。
到目前为止,我已经意识到,只要我确保它没有初始化D我认为我没有看到崩溃,但我再也不是100%肯定,我会测试更多,看看是否就是这样。
但与此同时,如果有人可以给出一些很棒的指针
答案 0 :(得分:5)
我发现我并没有删除我班级D dealloc中的一名观察员。