Swift,集合视图& storyboard,在另一个Label上使用viewWithTag时获取null

时间:2014-08-27 18:35:44

标签: swift uicollectionviewcell viewwithtag

我看到一些非常奇怪的行为,我想要一些帮助。 我有一个最初有一个标签的集合视图单元格,标签为43。

我使用以下代码设置标签的值:

func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
    let object = self.fetchedResultsController.objectAtIndexPath(indexPath) as NSManagedObject
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("playerCell", forIndexPath: indexPath) as UICollectionViewCell
    cell.backgroundColor = UIColor.orangeColor()
    let mintmplabel : UILabel = cell.viewWithTag(43) as UILabel
    mintmplabel.text = "fruktkaka"
    //(cell.viewWithTag(43) as UILabel).text =  object.valueForKey("playerName").description
    //let mintmplabelb : UILabel = cell.viewWithTag(41) as UILabel
    //mintmplabelb.text = "megaman"
    //(cell.viewWithTag(41) as UILabel).text =  object.valueForKey("playerName").description


    return cell
}

按预期工作!但是,我后来尝试在集合视图单元格中添加另一个标签,并为其添加标签41.当我取消注释行时

    //let mintmplabelb : UILabel = cell.viewWithTag(41) as UILabel
    //mintmplabelb.text = "megaman"

我收到以下错误(在“let”行上):

致命错误:在展开Optional值时意外发现nil (lldb)

当前消息显示在源代码中:“线程1:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)”

我尝试了很多不同的方法,但我无法让它发挥作用。我还试图删除这两个标签,并重新添加它们(使用相同的标签)。这打破了标签43和41的标签!

要么我错过了关于如何使用标签的内容,要么我偶然发现了某种错误。

我正在使用Xcode 6 beta 5。

任何帮助将不胜感激,我不知道在哪里寻找更多信息。

谢谢你/马丁

1 个答案:

答案 0 :(得分:3)

好吧,所以似乎在这里提出一个问题让我找到答案..我不知道为什么会有效,但确实如此。

我选择了不起作用的标签,并在故事板“属性检查器”中选中了一个复选框,表示“已安装”未选中,并且选中了“wC hR已安装”复选框。通过取消选中“wC hR installed”并选中“已安装”复选框,它就会重新开始工作。

我不知道这是做什么的,如果我发现,会更新答案。