ios - Swift 中的@IBOutlet 变量

标签 ios xcode swift var

我正在尝试根据本教程快速制作一个待办事项应用程序 here当我到达大约 5 分钟标记时,我运行该应用程序并获得:

**由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类对于键 notesTestView 不符合键值编码。”

我看到其他一些用户得到了这个,但没有明显的修复。我已经搜索了大约三天,现在正试图解决这个问题。

它与 titleTextField 和 notesTextView 变量有关。每当我使用 '!'在声明它们时,当我单击应用程序中的“+”时,Xcode 给我这个错误。如果我不使用 '!',Xcode 不会让我编译。如果我不使用任何一个 '?'或 '!',Xcode 不允许我编译。有什么想法吗?

我正在尝试如下声明变量(Xcode 默认值):

@IBOutlet var titleTextField: UITextField!
@IBOutlet var notesTextView: UITextView!

然后像这样访问它们:

@IBAction func addButtonTapped(sender: AnyObject) {

    var dataSet:NSMutableDictionary  = NSMutableDictionary()
    dataSet.setObject(titleTextField.text, forKey: "itemTitle")
    dataSet.setObject(notesTextView.text, forKey: "itemNote")

}

最佳答案

该错误告诉您问题所在:您正尝试使用键值编码为一个对象设置名为“khvj”的键值,而该对象没有名为“khvj”的键。

所以问题不在于你在看什么。

在您将“khvj”作为关键参数传递的地方寻找对setValue(value:forKey:) 的调用。然后检查您调用该方法的对象是否具有名为“khvj”的属性。

如果您自己没有调用 setValue(value:forKey:),那么它可能是作为从 xib 或 Storyboard文件加载对象的过程的一部分自动调用的.检查以确保在您的 xib 或 Storyboard文件中,您没有尝试将任何 socket 连接到实际上不再存在的属性“khvj”。

关于ios - Swift 中的@IBOutlet 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26164783/

相关文章:

ios - 在 iOS 中实现委托(delegate)方法 shouldChangeCharactersInRange 时获取 IndexOutofBoundsException

ios - ios 8从后台进入前台时如何播放MPMoviePlayerController?

iphone - 生成视频缩略图时出错

swift - 桥接 header 不存在

ios - 标签栏 UIViewController 中导航栏中的按钮未显示

ios - 为什么在 iOS 8 及更高版本中使用 @1x​​ 图像?

swift - 检测当前输入语言

ios - 分别通过alamofire调用web服务

ios - 如何更改whiteBalanceGains 值?

iOS 设计此逻辑/工作流程涉及 CoreLocation、Web 服务调用、加载 UI