由于KVO,iPhone应用程序崩溃了

Yog*_*esh 1 iphone crash key-value-observing

我的应用程序偶尔会崩溃,当我看到崩溃日志时,这就是我所看到的,我已经截断了其余部分,因为剩下的内容根据应用程序崩溃的位置而变化.

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
Run Code Online (Sandbox Code Playgroud)

我现在就给出一些背景知识

  1. 我有两个类,其中A有两个变量,B有3个变量

  2. 我正在观察C类和D类中的那些变量

  3. 由于应用程序中的业务逻辑流程不同,A类和B类中的变量会保持更改

  4. 有两个C类实例在应用程序的生命周期中存活,因为它们是tabBarcontroller应用程序中两个tab的rootController.

  5. 根据用户点击应用程序的内容,可以非常频繁地创建和销毁D的对象.

  6. 我在init中添加观察者并在dealloc中删除观察者.

到目前为止,我已经意识到,只要我确保它没有初始化D我认为我没有看到崩溃,但我不是100%肯定,我会测试更多,看看是否是这种情况.

但与此同时,如果有人可以给出一些很棒的指针

Yog*_*esh 5

我发现我没有删除我班级D dealloc中的一名观察员.