【发布时间】:2014-08-09 22:33:06
【问题描述】:
接收错误:valueForUndefinedKey:]:此类与键 imgSelect 的键值编码不兼容
我有一个可编辑的表格视图。选择单元格时,它会带您编辑信息。一切都很好,除了图像。用户可以保存图像,图像显示在tableview中,但是当返回编辑时,它会崩溃。这是写得不好的代码:
无需尝试重新加载要编辑的图像,其他一切正常。图像保存到数据库并显示在tableview中..
var existingItem: NSManagedObject!
override func viewDidLoad() {
super.viewDidLoad()
// Reload data to edit
if existingItem {
txtPTitle.text = project
txtPDesc.text = desc
txtSDate.text = sdate
txtEDate.text = edate
}
但是当我在编辑表格单元格时添加以下内容以加载图像
// Reload data back into form
if existingItem {
txtPTitle.text = project
txtPDesc.text = desc
txtSDate.text = sdate
txtEDate.text = edate
var data: NSManagedObject = NSManagedObject()
let imageData:NSData = data.valueForKeyPath("projectImage") as NSData
let projectImage:UIImage = UIImage(data: imageData)
println("we have an image")
imgSelect.image = projectImage
}
它会因以下错误而崩溃。
'NSUnknownKeyException', reason: '[<_NSZeroData 0x7fe7f1c3b020> valueForUndefinedKey:]: this class is not key value coding-compliant for the key imgSelect.'
【问题讨论】:
-
你在哪里定义了
imgSelect?如果在引用属性时包含self.,代码会更清晰。否则当其他人试图阅读它时会感到困惑。 -
@Rob Napier imSelect 是 IBOutlet 中定义的 UIImageView。我为糟糕的代码道歉。
-
您能否包括您对
imgSelect的定义以及您定义此var的类的信息?您的错误是说NSZeroData类型的某些对象没有名为imgSelect的属性。这并不是说您的视图控制器没有该属性,而是NSZeroData没有。这很好奇。
标签: ios objective-c swift nsdata xcode6