Подтвердить что ты не робот

Этот класс не является ключевым значением, совместимым с кодировкой для ключа givenName

SO я имеет этот

- (void)loadView {
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString* documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString* databasePath = [documentsPath stringByAppendingPathComponent:@"ProxDeals.db"];
NSError *error;

BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:databasePath];
if (fileExists==TRUE) {
    [[NSBundle mainBundle] loadNibNamed:@"ProxDealsViewController" owner:self options:nil];
}
else {
    NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"ProxDeals.db"];
    NSLog(@"%@",defaultDBPath);
    success = [fileManager copyItemAtPath:defaultDBPath toPath:databasePath error:&error];
    if (!success) {
        NSAssert1(0, @"Failed to create writable database file with message '%@/.", [error localizedDescription]);
    }
    [[NSBundle mainBundle] loadNibNamed:@"UserRegistration" owner:self options:nil];
}

}

и эта ошибка:

 Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ProxDealsViewController 0x5f22160> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key givenName.'

Я знаю, что я ничего не делаю в инициализации элемента UserRegistration, но я не знаю, как это исправить.

4b9b3361

Ответ 1

Это обычно означает, что что-то пытается получить доступ к @property "givenName".

Если вы делали что-то с IB, обычной причиной является то, что вы либо:

  • удалил это свойство из класса, но не удалили подключения в IB пока
  • ИЛИ: у вас есть владелец файла объект установлен в неправильный класс (проверьте свойства - разные, в зависимости от того, какую версию xcode вы используете, - чтобы найти имя класса его набор как. Вероятно, вы скопировали/вклеили файл NIB и не изменили это поле в NIB), и вы подключили для этого класса, но фактический владелец файла - это что-то отличается

Ответ 2

Эта проблема обычно возникает, когда существует несоответствие между IBOutlet в файле NIB и файле .h.

Убедитесь, что у вас нет сломанных соединений в IB (они обычно появляются с желтым цветом и рядом с ними предупреждающий знак). Кроме того, перед созданием очистите проект (Продукт > Очистить в XCode 4), вы можете иметь устаревший скомпилированный файл.

Ответ 3

Это также случилось со мной после того, как я удалил элемент пользовательского интерфейса из файла nib и соответствующий IBOutlet из контроллера представления. Очистка проекта также не решила его.

Поэтому я удалил папки в папке DerivedData, которая была создана Xcode 4. Затем она сработала!

Ответ 4

Иногда очень сложно удалить приложение с устройства/симулятора, особенно когда вы сохранили данные и конфигурацию.

Чтобы решить эту проблему, для каждого ViewController, для которого вы удалили файл .xib, добавьте следующий код:

-(NSString*) nibName
{
    return nil;
}

Ответ 5

Если у вас разные файлы storybord, и если у вас есть ссылки на выход с созданием точек в ваших заголовочных файлах, вы просто удаляете соединения, щелкнув правой кнопкой мыши на владельце файлов.

Владелец файлов- > Щелкните правой кнопкой мыши- > удалите ненужные выходные соединения. очистить и запустить проект

Пройдите это для ясного объяснения. Этот класс не подходит для кодирования ключа для ключа