自定义UITableViewCell异常

时间:2014-12-07 19:00:02

标签: ios uitableview

它能是什么? 无法在(UIView)上设置(标识符)用户定义的检查属性:[setValue:forUndefinedKey:]:此类不是密钥标识符的密钥值编码兼容。 在iOS 8上它可以工作,但在调试器中发送垃圾邮件,在以前的版本中它会崩溃app。 我检查并重新连接了界面构建器中的所有连接。

我的代码cellForRowAtIndexPath:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier(self.identifier, forIndexPath: indexPath) as PostCell

        cell.backgroundColor = UIColor.clearColor()

        cell.likeButton.setBackgroundImage(UIImage(named: "post_like_active"), forState: UIControlState.Selected)
        cell.dislikeButton.setBackgroundImage(UIImage(named: "post_dislike_active"), forState: UIControlState.Selected)

        var storageManager: PostStorageManager = PostStorageManager.sharedManager()
        var model: PostModel = storageManager.storageObjects()[indexPath.row] as PostModel

        cell.likeButton.selected = model.likeManager.likeState!.liked
        cell.dislikeButton.selected = model.likeManager.likeState!.disliked

        cell.textView.text = model.text
        cell.textView.font = UIFont(name: "HelveticaNeue-Light", size: fontSize)!
        cell.textView.contentInset = UIEdgeInsets(top: self.contentInsetTop, left: 0, bottom: 0, right: 0)

        cell.likeLabel.text = String(format: "%@", model.amountOfLikes)
        cell.dislikeLabel.text = String(format: "%@", model.amountOfDislikes)

        var date: NSDate = model.date

        cell.timeLabel.text = date.timeAgo()

        var tapRecog: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "tapOccure:")
        tapRecog.numberOfTapsRequired = 1
        cell.textView.addGestureRecognizer(tapRecog)

        var isMan = model.isMan.boolValue

        cell.trollfaceImage.image = UIImage(named: String(format: "%@_%i", isMan ? "man" : "woman", model.experiance.integerValue))

        var manColor = UIColor(red: 41/255, green: 86/255, blue: 115/255, alpha: 1)
        var womanColor = UIColor(red: 206/255, green: 68/255, blue: 96/255, alpha: 1)
        cell.ageLabel.textColor = isMan ? manColor : womanColor
        cell.ageLabel.text = String(format: "%i", model.age.integerValue)

        cell.textView.userInteractionEnabled = false

        return cell
    }

1 个答案:

答案 0 :(得分:1)

检查单元格中的所有视图,我认为您将标识符放在错误的位置。