接收错误:valueForUndefinedKey:]:此类不是密钥值编码兼容的密钥imgSelect
我有一个可编辑的tableview ..选择单元格时,它会带你编辑信息。除了图像,一切都很好。用户可以保存图像,图像显示在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
}
但是当我在编辑tablecell时添加以下内容来加载图像
// 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.'
答案 0 :(得分:1)
我怀疑你实际上没有在Interface Builder中绑定imgSelect
。
它是否真的在imgSelect.image = projectImage
行崩溃,或者可能更早(例如在NIB加载期间)崩溃? imgSelect
是否正确?在beta 4或beta 5中,他们改变了IBOutlets的定义方式,你应该确保自那时起你已经完成了一次完整的清理和重建(否则你可能会遇到错误的对象,正如你所看到的那样)。