代码之家  ›  专栏  ›  技术社区  ›  zs2020

核心数据保存触发了有关uiCallOutBarOverlay的非相关异常?

  •  0
  • zs2020  · 技术社区  · 16 年前
    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'
    

    我所做的只是保存一个对象。有什么想法吗?我根本不使用uicallottbaroverlay。似乎会触发一些随机函数,这只是一种情况。

    以下是我在这个特殊案例中看到的一些可能的例外情况:

    -[__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 ,错误正是我在这里看到的。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Marcus S. Zarra    16 年前

    这就是线索:

    -[NSNotificationCenter postNotificationName:object:userInfo:]
    

    这意味着一个通知正在被发布,并且该通知的一个接收者已经不在了;很可能已经发布了。对于每一个 -addObserver: 调用您的代码,您需要将其与 -removeObserver: . 这个 NSNotificationCenter 不会保留它所关联的观察者,但会保留对它的有力引用。

        2
  •  0
  •   Michael Morrison    15 年前

    这不是一个答案,但对于像我这样的人来说,这也许是一个解决方案,他们面对这个问题,为这个解决方案苦苦挣扎了几个小时。我的情况与海报的情况非常相似,我在详细视图中更改属性时崩溃 -[CALayer controllerWillChangeContent:]: unrecognized selector sent to instance .

    Sza的评论为我指明了正确的方向。我用了红衣匠的密码 here 但更改了AppDelegate中的Init方法 initWithStyle initWithNibName 然后做了 NIB与NIB名称 再次出现在控制器的类文件中(d'oh!).

    同样,不是一个具体的答案,但希望能帮助下一行的人。