2016-10-05 2 views
0

Я использую основные данные.NSUnknownKeyException setValue: forUndefinedKey

У меня есть это в моем View Controller:

 double bearingSave = course; 
     double widthSave = inFeet; 
     NSString *fieldName = @"BLAHBLAHBLAH"; 
     double acres = 5; 

     AppDelegate *appDelegate = 
     [[UIApplication sharedApplication] delegate]; 

     NSManagedObjectContext *context = 
     [appDelegate managedObjectContext]; 
     NSManagedObject *newContact; 
     newContact = [NSEntityDescription 
         insertNewObjectForEntityForName:@"Contacts" 
         inManagedObjectContext:context]; 

     [newContact setValue: [NSNumber numberWithDouble:bearingSave] forKey:@"bearing"]; 
     [newContact setValue: [NSNumber numberWithDouble:widthSave] forKey:@"width"]; 

//THIS ONE IS CAUSING ERROR 
     [newContact setValue: [NSNumber numberWithDouble:acres] forKey:@"acres"]; 

я получаю это сообщение:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSManagedObject 0x6080000b3b60> setValue:forUndefinedKey:]: the entity Contacts is not key value coding-compliant for the key "acres". 

У меня есть "акра" как атрибут в моем Контакты сущности, как показано:

XCDATAMODEL

Я пробовал несколько симуляторов и даже удалял а также попытался снова и по-прежнему получать ошибку.

+0

Может ли быть опечатка в вашей маме? Может быть, есть невидимое место после «акров» или чего-то еще. Вы можете напрямую просмотреть файл модели; это всего лишь файл XML, завернутый в пакет, поэтому вы можете прочитать его с помощью любого текстового редактора. – matt

+0

@matt Спасибо. Я открыл модель отдельным редактором и заметил, что XML-лист не генерирует все атрибуты. Интересно, почему они появятся в XCode, но на самом деле их не было. – johnsonjp34

+1

Я понятия не имею. Идея о том, что отображение графического интерфейса в Xcode может как-то не соответствовать основной XML-реальности, - это нечто вроде потрясающего. Возможно, это помогло бы очистить кешины DerivedData. Во всяком случае, я рад, что подумал о том, чтобы предложить вам посмотреть под капот! – matt

ответ

0

Все не так, как они выглядят.

Я открыл файл модели данных в каталоге проекта XCode другим текстовым редактором, отличным от XCode. Стало ясно, что в файле модели данных XCode отсутствовали атрибуты, которые показывались в редакторе Entity GUI XCode.

Не знаете, почему это было иначе. Я добавил атрибуты к модели данных с другим текстовым редактором, и он работал нормально.