При удалении контекста управляемого объекта и сохранении объектов возникает ошибка objc_exception_throw - PullRequest
0 голосов
/ 22 февраля 2010

У меня возникает следующая ошибка при попытке вызвать метод save для managedObjectContext.

#0  0x939214e6 in objc_exception_throw
#1  0x01ded83b in -[NSObject doesNotRecognizeSelector:]
#2  0x01d84676 in ___forwarding___
#3  0x01d606c2 in __forwarding_prep_0___
#4  0x01c618b6 in -[NSFetchedResultsController(PrivateMethods) _managedObjectContextDidChange:]
#5  0x0003263a in _nsnote_callback
#6  0x01d4f005 in _CFXNotificationPostNotification
#7  0x0002fef0 in -[NSNotificationCenter postNotificationName:object:userInfo:]
#8  0x01bc217d in -[NSManagedObjectContext(_NSInternalNotificationHandling)     _postObjectsDidChangeNotificationWithUserInfo:]
#9  0x01c21763 in -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:]
#10 0x01ba65ea in -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:]
#11 0x01bdc728 in -[NSManagedObjectContext save:]
  • Я сделал некоторые изменения в сущности OrderItem, прежде чем перейти к следующему коду, где я хочу отменить любую вставку в OrderItem

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    [fetchRequest setEntity:[NSEntityDescription entityForName:@"OrderItem" inManagedObjectContext:managedObjectContext]];
    NSArray *deleteItems = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
    for (id item in deleteItems)
        [managedObjectContext deleteObject:item];
    
    if (![managedObjectContext save:&error]){
        NSLog(@"deleting OrderItem failed: %@, %@", error, [error userInfo]);
        return FALSE;
    }
    

Ошибка возникает в строке [managedObjectContext save: & error] без обращения к NSLog, но вызывает исключение.

Что я делаю не так? Кто-нибудь покажет мне как, пожалуйста?

1 Ответ

0 голосов
/ 22 февраля 2010

У меня есть сложная схема в моем .xcdatamodel, в которой OrderItem имеет две взаимосвязи с . Для DeleteRule должно быть установлено значение Nullify .

Временно изменить на «Бездействие» устраняет ошибку, даже если она вызывает некоторые предупреждения , но лично я считаю, xCode не должен вести себя таким образом . Он должен заполнить значения & error, чтобы я знал, что у меня проблемы с моей схемой.

Есть мысли по этому поводу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...