从 uicollectionView 选择创建 UITableViewCell

Posted

技术标签:

【中文标题】从 uicollectionView 选择创建 UITableViewCell【英文标题】:create UITableViewCell from uicollectionView choice 【发布时间】:2016-02-19 22:28:40 【问题描述】:

我实际上正在做一个应用程序,它在用户选择 1 时将内容加载到 UICollectionView 它应该创建一个 UITableViewCell 并将其添加到右侧的 UITableView 但我不断收到错误

在 ViewDidLoad 我注册了 Nib(其中 cart @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.'

非常感谢任何帮助

【问题讨论】:

2016-02-19 16:41:33.375 trackMyDevice_1.0[43188:5851609] *** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[ setValue:forUndefinedKey :]: 这个类与键 imgService 的键值编码不兼容。' xib 中的视图不是 cartCell 类。只需单击界面生成器中的顶视图并将类设置为 cartCell 已经做了错误是别的东西,我实际上纠正了它。我会发布答案 【参考方案1】:

我注册了笔尖

所以你有一个名为 cartCell.xib 的 nib,对吗?这就是您在此处注册的内容:

cart!.registerNib(UINib(nibName: "cartCell", bundle: nil), 
    forCellReuseIdentifier: "Cell")

稍后您可以通过以下方式加载该笔尖以获取单元格:

let cell = tableView.dequeueReusableCellWithIdentifier("Cell", 
    forIndexPath: indexPath) as! cartCell

现在,该行明确声明从 nib 加载的单元格将是 cartCell。但问题在于,该 nib 中的***对象 cartCell.xib 实际上 不是 cartCell。它不是 任何 种 UITableViewCell。它是一个 NSObject!因此,您抱怨这个东西是一个 NSObject 时崩溃了:

<NSObject 0x7fe645009320> ... this class is not key value coding-compliant for the key imgService

【讨论】:

以上是关于从 uicollectionView 选择创建 UITableViewCell的主要内容,如果未能解决你的问题,请参考以下文章

从图书馆创建一个照相亭来挑选图像

如何以编程方式快速创建 uicollectionview(没有情节提要)

无论在 UICollectionView 中选择啥 IndexPath,只有最后一个单元格会被突出显示

如果从 UICollectionView 的其他部分中选择了一个单元格,则取消选择所有其他选择

如何从代码中选择 UICollectionView 的项目/单元格

从 UICOLLECTIONViEW 选择的索引objective-c打开PDF文件