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的变量,所以我不知道为什么我会收到错误...
谢谢
答案 0 :(得分:34)
您收到错误,因为没有名为loginButton的属性。检查.xib文件。几乎可以肯定的是,一个指向loginButton的FinalViewWithSending对象(可能是File的所有者)的链接很糟糕,即使它在类代码中不存在。
答案 1 :(得分:9)
Phillip Mills是对的。
对于任何搜索,这里的答案是编辑故事板并删除指定未定义键的任何链接。您必须在外部编辑器中编辑故事板文件:右键单击层次结构中的故事板列表,然后单击“在查找器中显示”或您拥有的内容。在文本编辑器中打开,通过搜索,保存并返回Xcode来删除所述链接。没有更多问题。
当您从视图控制器中不正确地删除某些内容时会发生这种情况。
答案 2 :(得分:8)
在此同意 - 菲利普米尔斯是正确的。
有人提到在文本编辑器中打开故事板 - 这不是必需的。
只需单击故事板,转到Connections Inspector即可。如果你有一个有问题的插座,你会在插座旁边看到一个惊叹号。删除它。
答案 3 :(得分:5)
由于这是此错误的第一个搜索结果,我决定为像我这样的新手写一个答案。
如果您从按钮中按Ctrl拖动连接,在ViewController中生成代码,然后在不删除连接的情况下删除代码,则会出现此错误。
我收到了这个错误,因为当我想将它们添加为动作时,我意外地添加了几个按钮作为Outlets。我删除了生成的代码但是仍然存在错误的连接。
要查找和删除它们,请查看 - &gt;实用程序 - &gt;显示连接检查器
然后单击您拥有的不同按钮,然后单击x以删除不良连接。
答案 4 :(得分:2)
如果您有任何本地化,请在所有故事板中搜索错误链接(展开故事板以查找本地化的故事板)。
这是我的情况。我在一个故事板中寻找不良链接,而且它们是本地化的。
答案 5 :(得分:1)
我遇到了同样的问题:
我之前使用从文本字段到头文件的故事板建立了连接。我后来决定我想重命名对象的连接,不幸的是,我没有正确地断开连接。如果此问题与我的问题相同,则先前存在与按钮的连接,并且标题中的代码已删除,但连接不是。
检查您正在查看的视图中的对象连接。
答案 6 :(得分:1)
答案 7 :(得分:0)
您可以使用关联对象来避免子类化。至于setValue:forKey:和setValue:forUndefinedKey:,请查看头文件(NSKeyValueCoding.h)以获取详细信息。
根据你的描述, 在界面构建器中找到newView并右键单击它, 你会看到像loginButton这样的异常。
答案 8 :(得分:0)
今天我正在工作并且我提出了同样的错误,我使用Phillip Mills的响应是正确的,我在一个ViewController.xib中有一些标签没有被分配链接,我有五个坏链接,一旦分配了链接,一切顺利,感谢Phillip Mills的回答。
答案 9 :(得分:0)
转到FinalViewWithSending视图控制器&amp;的xib的连接检查器。删除登录按钮的引用。之后它会运行。试试吧...... :)
答案 10 :(得分:0)
可能您之前创建了LoginButton,Cmd + Shift + F并找到了“LoginButton”并删除了引用插座并重新构建。
答案 11 :(得分:0)
此回复相对于提出问题的时间可能要晚一些,但是我只是遇到了这个问题,因此我尝试了此处发布的所有解决方案,但均无济于事。
这是我的解决方案,可以在将来帮助任何人。
首先是问题,:我使用了一个自定义单元类并建立了连接,一切都与我的应用程序正常工作,然后,我将我的自定义单元类重命名运行了我的应用程序,但由于setValue:forUndefinedKey而崩溃: ]错误。
我的解决方案:单击.xib文件,选择身份检查器,然后在“自定义类->类”标签中键入新的命名类。 应用错误已解决。