2013-11-07 2 views
1

У меня довольно странная проблема. Я использую coredata для сохранения заметок. Я могу получить доступ/сохранить/изменить все атрибуты объекта «Примечания», кроме одной: категории.Ошибка приложений с одним атрибутом основных данных

-(void)editCategory { 

    NSFetchRequest *request = [[NSFetchRequest alloc]init]; 
    NSEntityDescription *categRequest = [NSEntityDescription entityForName:@"Notes" inManagedObjectContext:_managedObjectContext]; 
    request.predicate = [NSPredicate predicateWithFormat:@"text = %@", noteToEdit]; 
    [request setEntity:categRequest]; 

    //Error handling 
    NSError *error = nil; 
    NSMutableArray *mutableFetchResults = [[_managedObjectContext executeFetchRequest:request error:&error]mutableCopy]; 
    if (mutableFetchResults == nil) { 
     NSLog(@"Error happened : %@", error); 
    } 

    Notes *editMe = [mutableFetchResults objectAtIndex:0]; 
    [editMe setCategory:editCategoryText]; 
    NSLog(@"Category from pickerview : %@", editCategoryText); 
    if (![_managedObjectContext save:&error]) { 
     NSLog(@"couldnt save : %@", error); 
    } 
} 

Эта линия:

[editMe setCategory:editCategoryText]; 

разваливается. editCategoryText - это строка, как атрибут категории. Странно то, что я использую тот же самый фрагмент кода, чтобы изменить атрибут title, и у меня нет никаких проблем.

файл журнала:

 
2013-11-07 15:49:20.286 Simple Notes 1[16511:a0b] -[__NSCFString managedObjectContext]: unrecognized selector sent to instance 0x8dccc30 
2013-11-07 15:49:20.293 Simple Notes 1[16511:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString managedObjectContext]: unrecognized selector sent to instance 0x8dccc30' 

У вас есть идея, почему этот атрибут ведет себя иначе, чем другие? Спасибо.

+0

Попробуйте использовать NSArray для результатов, а не для mutableArray. –

ответ

0

На самом деле кажется, что это была основная ошибка данных, я решил ее, удалив мое приложение в симуляторе, удалив базовую модель данных в xcode, построил ее снова и выполнил чистую.

0

Не на компьютере, так что не может проверить это, но:

Избавиться от mutableCopy. executeFetchRequest возвращает автореализованные объекты, которые вы затем пытаетесь скопировать, это превращается в указатель на мусор, который, оказывается, указывает на строку.

Смежные вопросы