setTitle无法在If语句中使用(类似/与功能不同)

时间:2019-01-03 11:57:08

标签: swift

我正在通过.setTitle显示社交媒体帖子具有的“点赞”数量。我已经确认我具有“计数”的值,但是if / else不起作用。

我在学习时遇到了这个问题。特别是创建Instagram的“克隆”的教程。我已经检查了所提供的代码示例,并将其与我自己的代码示例进行了比较,但是看起来相同,但是结果却有所不同。

    func updateLike(post: Post) {
    let imageName = post.likes == nil || !post.isLiked! ? #imageLiteral(resourceName: "heart_inactive") : #imageLiteral(resourceName: "heart_active")
    likeImageView.image = imageName
    guard let count = post.likeCount else {
        return
    }
    if count != 0 {
        likeCountButton.setTitle("\(count) likes", for: UIControl.State.normal)
    } else {
        likeCountButton.setTitle("Like this post first!", for: UIControl.State.normal)
    }

}

我希望按钮标题为“先赞此帖子!”当count为0时,当count不为0时表示“(计数)喜欢”

现在标题为空

1 个答案:

答案 0 :(得分:1)

guard将在likeCountnil时返回,请尝试

if let count = post.likeCount , count != 0  { 
     likeCountButton.setTitle("\(count) likes", for:.normal)
else 
    likeCountButton.setTitle("Like this post first!", for:.normal)
}