SetValue: forUndefinedKey]: - PullRequest
       50

SetValue: forUndefinedKey]:

20 голосов
/ 31 марта 2012
FinalViewWithSending *newView = [[FinalViewWithSending alloc]initWithNibName:@"FinalViewWithSending" bundle:nil];
newView.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:newView animated:YES]; //it crashes here with a thread 1 error, SIGABRT error..

Там написано:

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

Нет переменной с именем loginButton, поэтому я не уверен, почему я получаю ошибку ...

Спасибо

Ответы [ 11 ]

34 голосов
/ 31 марта 2012

Вы получаете ошибку , потому что нет свойства с именем loginButton.Проверьте ваш .xib файл.Почти наверняка существует плохая ссылка на объект FinalViewWithSending (вероятно, владельца файла), который указывает loginButton, даже если он не существует в коде класса.

9 голосов
/ 06 сентября 2012

Филлип Миллс правильно.

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

Это происходит, когда вы что-то неправильно удаляете из контроллера вида.

8 голосов
/ 28 сентября 2012

Согласитесь - Филлип Миллс прав.

Кто-то упомянул, что открыть раскадровку в текстовом редакторе - это не обязательно.

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

5 голосов
/ 17 сентября 2017

Так как это первый результат поиска для этой ошибки, я решил написать ответ для новичков, как я.

Вы получите эту ошибку, если у вас есть перетаскиваемые соединения Ctrl из кнопок, которые генерируют код в вашем ViewController, а затем вы удаляете только код, не удаляя соединение.

Я получил эту ошибку, потому что я случайно добавил несколько кнопок как Розетки, когда я хотел добавить их как Действия. Я удалил сгенерированный код, но плохие соединения все еще были.

Чтобы найти и удалить их, View-> Utilities-> Show Connections Inspector

Затем нажмите различные кнопки, которые у вас есть, и нажмите x, чтобы удалить плохие соединения.

enter image description here

2 голосов
/ 07 сентября 2012

Если у вас есть локализация, найдите плохие ссылки во всех раскадровках (разверните раскадровку, чтобы найти локализованные раскадровки).

Это была моя ситуация.Я искал плохие ссылки в одной раскадровке, а они были в локализованной.

1 голос
/ 20 сентября 2016

Вы можете попробовать, как я привык, исправить мою проблему setValue:forUndefinedKey:]:.

http://i.stack.imgur.com/PDjub.png

1 голос
/ 16 декабря 2013

У меня была такая же проблема:

Ранее я установил соединение с использованием раскадровок из текстового поля в файл заголовка. Позже я решил, что хочу переименовать соединение моего объекта, к сожалению, я не разорвал соединение должным образом. Если эта проблема была такой же, как у меня, то ранее к кнопке существовало соединение, и код в заголовке был удален, но соединение не было.

Проверьте соединения объектов в представлении, к которому вы обращаетесь.

0 голосов
/ 19 октября 2015

Возможно, вы ранее создали LoginButton, Cmd + Shift + F и нашли «LoginButton» и удалили выход для ссылки и перестроили.

0 голосов
/ 10 сентября 2014

Зайдите в инспектор соединений вашей xib контроллера просмотра FinalViewWithSending и удалите ссылку кнопки входа в систему. После этого он запустится. Попробуй ...:)

0 голосов
/ 23 июля 2013

Сегодня я работал, и я представил ту же ошибку, я использовал ответ Филиппа Миллса, который был правильным, и у меня было несколько меток в одном ViewController.xib, которым не назначались ссылки, у меня есть пять плохих ссылок, однажды назначенные ссылки,все работает отлично, спасибо ответ Филиппа Миллса.

...