2010-08-05 4 views
0
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' 

Ce que j'ai fait, c'est simplement enregistrer un objet. Une idée? Je n'utilise pas UICalloutBarOverlay du tout. Il semble que certaines fonctions aléatoires seront déclenchées, ce n'est qu'un cas.La sauvegarde des données de base a déclenché une exception non pertinente à propos de UICalloutBarOverlay?

Voici quelques exceptions possibles que je l'ai vu pour ce cas particulier:

-[__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) continuent

Dans ce fil NSFetchedResultsController based Table View always fails on SECOND insert of entity, l'erreur est exactement ce que je vois ici.

Répondre

1

C'est l'indice:

-[NSNotificationCenter postNotificationName:object:userInfo:] 

Cela signifie qu'une notification est affichée et obtenir un des receivors de cette notification est partie; très probablement publié. Pour chaque -addObserver: appel dans votre code, vous devez faire correspondre avec un -removeObserver:. Le NSNotificationCenter ne conservera pas l'observateur auquel il est associé mais conservera un référene fort.

+0

Merci! J'ai résolu mon problème. La raison est que j'ai créé le UIViewController dans mon code et chargé le XIB dans une méthode. Mais après avoir changé l'initialisation dans ViewDidLoad et mis la version de l'instance du contrôleur dans le dealloc, alors cela a fonctionné. Il semble que ce n'est pas que sauver pour créer le XIB, puis le charger et aller de l'avant et en arrière? – zsong

+0

Pouvez-vous reformuler cette question? –

0

Ce n'est pas une réponse, mais peut-être une solution à ceux, comme moi, qui ont confronté ce problème et ont lutté pendant des heures avec la solution. Mon cas ressemble beaucoup à celui de l'affiche, j'étais en train de planter en changeant un attribut dans une vue détaillée avec -[CALayer controllerWillChangeContent:]: unrecognized selector sent to instance.

Le commentaire de Sza m'a orienté dans la bonne direction. J'avais utilisé le code de Red Artisan here mais j'ai changé la méthode init dans l'appDelegate de initWithStyle à initWithNibName puis j'ai de nouveau fait initWithNibName dans le fichier de classe du contrôleur (D'oh!).

Encore une fois, pas une réponse spécifique, mais j'espère aider quelqu'un à la ligne.

Questions connexes