تحطمت على توفير managedObjectContext ، مع "nsinvalidargumentexception" ، ولكن فقط بشكل متقطع

StackOverflow https://stackoverflow.com/questions/3532645

  •  30-09-2019
  •  | 
  •  

سؤال

أستمر في الحصول على حوادث من حفظ: أمر على managedObjectContext. لا يفي ببيان NSLog حتى لا أرى بيان الخطأ الذي لم يتم حله ، لذلك لا يمكنني معرفة المشكلة. لا يحدث ذلك في كل مرة ، ولكن بشكل متقطع فقط.

إليك الرمز (الذي يريد أساسًا زيادة عداد):

 if ([[managedObject valueForKey:@"canSee"]boolValue]){
    int read = [[managedObject valueForKey:@"timesRead"] intValue] +1;
    [managedObject setValue:[NSNumber numberWithInt:read] forKey:@"timesRead"]; 


    NSError *error;
    if (![resultsController.managedObjectContext save:&error]) {  //<-- crashes on this line!
        NSLog(@"Unresolved Core Data Save error %@, %@", error, [error userInfo]);
        exit(-1);
    }

في نافذة وحدة التحكم ، أحصل على رسائل مثل هذه:

  2010-08-20 08:12:20.594 AppName[23501:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFSet controllerWillChangeContent:]: unrecognized selector sent to instance 0xe54f560'

أو هذا:

  2010-08-20 08:12:20.594 AppName[23501:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFSet controllerWillChangeContent:]: unrecognized selector sent to instance 0xe54f560'

أو حتى هذا:

  2010-08-19 23:09:59.337 AppName[761:307] Serious application error.  Exception was caught during Core Data change processing.  This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification.  -[UITableViewLabel controllerWillChangeContent:]: unrecognized selector sent to instance 0x7f0a860 with userInfo (null)
  2010-08-19 23:09:59.356 AppName[761:307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewLabel controllerWillChangeContent:]: unrecognized selector sent to instance 0x7f0a860'

بعد ذلك ، يُظهر مكدس المكالمات عند الرمي الأول ، يليه إشعار (إنهاء يسمى بعد إلقاء مثيل "nsexception" و [التبديل إلى العملية 23501] و "برنامج استلامه:" SIGABRT ".

أعتقد أن المشكلة لها علاقة بكوراتا ولكني لست متأكدًا. لقد قمت بتنظيف البناء والأهداف الخاصة بي ولا يبدو أنه يساعد. لقد حاولت قفل/فتح managedObjectContext ولا يساعد ذلك.

أي أفكار هنا حول مكان البدء في البحث عن قرار سيكون موضع تقدير كبير!

هل كانت مفيدة؟

المحلول

يبدو أنك ستصدر UIViewController وعدم إطلاقها المرتبطة بها NSFetchedResultsController. ال NSFetchedResultsController تحاول إخطار مندوبها (على الأرجح الخاص بك UIViewController) من الحفظ على الخروج.

نصائح أخرى

لتوضيح إجابة ماركوس ، تحتاج إلى التأكد من أنك لا تتخلص من المندوب لصالح NSFetchedResultsController عندما تختفي وجهة نظرك:

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];

    self.fetchedResultsController.delegate = nil;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top