2010-08-05 00:34:49.186 Holidays[30485:207] -[UICalloutBarOverlay controllerWillChangeContent:]: unrecognized selector sent to instance 0x5b53540
2010-08-05 00:34:49.188 Holidays[30485:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UICalloutBarOverlay controllerWillChangeContent:]: unrecognized selector sent to instance 0x5b53540'
*** Call stack at first throw:
(
0 CoreFoundation 0x02587919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x026d55de objc_exception_throw + 47
2 CoreFoundation 0x0258942b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x024f9116 ___forwarding___ + 966
4 CoreFoundation 0x024f8cd2 _CF_forwarding_prep_0 + 50
5 CoreData 0x0012e1fb -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:] + 1867
6 Foundation 0x00215c1d _nsnote_callback + 145
7 CoreFoundation 0x0255fcf9 __CFXNotificationPost_old + 745
8 CoreFoundation 0x024df11a _CFXNotificationPostNotification + 186
9 Foundation 0x0020b7c2 -[NSNotificationCenter postNotificationName:object:userInfo:] + 134
10 CoreData 0x0006a519 -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:] + 89
11 CoreData 0x000d9b33 -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:] + 259
12 CoreData 0x0004cf78 -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] + 1352
13 CoreData 0x00086a15 -[NSManagedObjectContext save:] + 149
14 Holidays 0x0000977b -[UIEventDetailController save:] + 752
15 UIKit 0x004abe14 -[UIApplication sendAction:to:from:forEvent:] + 119
16 UIKit 0x006b314b -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 156
17 UIKit 0x004abe14 -[UIApplication sendAction:to:from:forEvent:] + 119
18 UIKit 0x005356c8 -[UIControl sendAction:to:forEvent:] + 67
19 UIKit 0x00537b4a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
20 UIKit 0x005366f7 -[UIControl touchesEnded:withEvent:] + 458
21 UIKit 0x004cf2ff -[UIWindow _sendTouchesForEvent:] + 567
22 UIKit 0x004b11ec -[UIApplication sendEvent:] + 447
23 UIKit 0x004b5ac4 _UIApplicationHandleEvent + 7495
24 GraphicsServices 0x02dedafa PurpleEventCallback + 1578
25 CoreFoundation 0x02568dc4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
26 CoreFoundation 0x024c9737 __CFRunLoopDoSource1 + 215
27 CoreFoundation 0x024c69c3 __CFRunLoopRun + 979
28 CoreFoundation 0x024c6280 CFRunLoopRunSpecific + 208
29 CoreFoundation 0x024c61a1 CFRunLoopRunInMode + 97
30 GraphicsServices 0x02dec2c8 GSEventRunModal + 217
31 GraphicsServices 0x02dec38d GSEventRun + 115
32 UIKit 0x004b9b58 UIApplicationMain + 1160
33 Holidays 0x000021ba main + 84
34 Holidays 0x0000215d start + 53
)
terminate called after throwing an instance of 'NSException'
我所做的只是保存一个物体。任何的想法?我根本没有使用UICalloutBarOverlay。似乎会触发一些随机函数,这只是一种情况。
以下是我在这个特殊情况下看到的一些可能的例外情况:
-[__NSCFDictionary controllerWillChangeContent:]: unrecognized selector sent to instance 0x5b3e1e0
-[UIImageView controllerWillChangeContent:]: unrecognized selector sent to instance 0x5e3ab10
-[CALayer controllerWillChangeContent:]: unrecognized selector sent to instance 0x5b377d0
(gdb)继续
在这个帖子NSFetchedResultsController based Table View always fails on SECOND insert of entity中,错误正是我在这里看到的。
答案 0 :(得分:1)
这是线索:
-[NSNotificationCenter postNotificationName:object:userInfo:]
这意味着发布通知并且该通知的一个接收者已经消失;最有可能被释放。对于代码中的每次-addObserver:
调用,您需要将其与-removeObserver:
匹配。 NSNotificationCenter
不会保留与之关联的观察者,但会对其保持强烈的参考。
答案 1 :(得分:0)
这不是一个答案,但也许是像我这样的人的解决方案,他们面对这个问题并且在解决方案上花了好几个小时。我的情况与海报非常相似,在使用-[CALayer controllerWillChangeContent:]: unrecognized selector sent to instance
更改详细视图中的属性时崩溃了。
Sza的评论指出了我正确的方向。我使用了Red Artisan here中的代码,但将appDelegate中的init方法从initWithStyle
更改为initWithNibName
,然后再次在控制器的类文件中执行initWithNibName
(D'哦!)。
同样,不是一个具体的答案,但希望能帮助某人下线。