valueForUndefinedKey:]:此类与密钥imgSelect Swift不符合密钥值编码

时间:2014-08-09 22:33:06

标签: ios objective-c swift nsdata xcode6

接收错误: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.'

1 个答案:

答案 0 :(得分:1)

我怀疑你实际上没有在Interface Builder中绑定imgSelect

它是否真的在imgSelect.image = projectImage行崩溃,或者可能更早(例如在NIB加载期间)崩溃? imgSelect是否正确?在beta 4或beta 5中,他们改变了IBOutlets的定义方式,你应该确保自那时起你已经完成了一次完整的清理和重建(否则你可能会遇到错误的对象,正如你所看到的那样)。