我实际上正在做一个将内容加载到UICollectionView的应用程序,因为用户选择1它应该创建一个UITableViewCell并将其添加到右边的UITableView但我一直收到错误
在ViewDidLoad中我注册了Nib(购物车@IBOutlet var cart:UITableView?并连接到Storyboard)
cart!.registerNib(UINib(nibName: "cartCell", bundle: nil), forCellReuseIdentifier: "Cell")
选择单元格后,我将对象添加到数组中并刷新表格
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
if indexPath.row < serviceList.count {
let service:Service = serviceList[indexPath.row]
cartOrder.append(service)
dispatch_async(dispatch_get_main_queue()){
self.cart!.reloadData()
}
}
}
但是当表填充其内容时,我在单元格声明中出现错误
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! cartCell
let serv = cartOrder[indexPath.row]
cell.lblName.text = serv.name
cell.lblDescription.text = serv.description
cell.imgService.image = UIImage(named: "star")
return cell
}
我得到的错误是
2016-02-19 16:41:33.375 trackMyDevice_1.0[43188:5851609] ***
Terminating app due to uncaught exception 'NSUnknownKeyException',
reason: '[<NSObject 0x7fe645009320> setValue:forUndefinedKey:]:
this class is not key value coding-compliant for the key imgService.'
非常感谢任何帮助
答案 0 :(得分:0)
我注册了笔尖
所以你有一个名为 cartCell.xib 的笔尖,是吗?这就是你在这里注册的内容:
cart!.registerNib(UINib(nibName: "cartCell", bundle: nil),
forCellReuseIdentifier: "Cell")
稍后你加载那个笔尖来获取一个单元格,说:
let cell = tableView.dequeueReusableCellWithIdentifier("Cell",
forIndexPath: indexPath) as! cartCell
现在,该行明确声称从笔尖加载的单元格将是cartCell。但问题是该nib中的顶级对象 cartCell.xib 实际上不是是一个cartCell。它不是任何类型的UITableViewCell。这是一个NSObject!因此,你抱怨说这件事是NSObject:
<NSObject 0x7fe645009320> ... this class is not key value coding-compliant for the key imgService