使用核心数据致命错误填充数组

Posted

技术标签:

【中文标题】使用核心数据致命错误填充数组【英文标题】:Populating an array with core data fatal error 【发布时间】:2015-07-05 06:53:27 【问题描述】:

我正在用核心数据填充一个数组。所以我拍了一张照片,它保存了,应该在 uiview 中返回我的图像,但得到了这个错误:

致命错误:在展开可选值时意外发现 nil

我在进入视图控制器查看之前拍了照片,但是当我这样做时,它给了我这个错误。

    var stores = [Image]()

    var cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as UICollectionViewCell
    let store = stores[indexPath.row]
    var imageView = cell.viewWithTag(1) as UIImageView
    imageView.image = UIImage(data: store.image as NSData)

这段代码应该是解开标签为 1 的集合单元格。

【问题讨论】:

你有一个名为Image的类吗? 是的,我刚刚解决了这个问题,但致命错误仍然存​​在。 展开错误发生在哪一行?提供该段的代码。 @HideShidara 你在使用 Storyboard 吗?我建议您创建一个自定义单元格(UICollectionViewCell 的子类),其中包含需要配置的每个子视图的属性(IBOutlet,如果您使用 xib/storyboard)。 【参考方案1】:

您的代码不会打开带有标签 1 的集合单元格。viewWithTag() 返回带有标签 1 的单元格“单元格”的子视图。因此,如果该单元格不包含带有标签值的子视图1,返回nil,所以报错。

【讨论】:

如何确保单元格包含子视图? @HideShidara 如果单元格包含具有该标记值的子视图,则 viewWithTag 返回该子视图。如果不是,则返回 nil。就这么简单。

以上是关于使用核心数据致命错误填充数组的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:单击特定单元格进行 segue 时索引超出范围

使用核心数据中的数组填充表视图

致命错误:索引超出范围的 tableview 有两个部分

致命错误:索引超出范围tableview

iOS Swift 3核心数据-尝试递归调用-save的致命错误:上下文中止

fetchedResultsController 核心数据致命错误:在展开可选值时意外发现 nil