Swift:类型字符串的值永远不能为零,不允许比较

时间:2016-11-29 12:33:44

标签: ios swift

这是我的代码

func enteredByStr(S:String) -> String? {
    var healthactionplan : MyHealthActionPlanCondition

    if healthactionplan.addedBy != nil  {
        healthactionplan.addedBy = "System"
    } else {
        healthactionplan.addedBy = "Member"
    }
}

我甚至关注过此ThisThis。但仍然无法解决。任何人都可以解释为什么???

3 个答案:

答案 0 :(得分:5)

  

Type String的值永远不能为nil,不允许比较

错误消息显示所有内容

addedBy是String。所以在addedBy上查看isEmpty

 if healthactionplan.addedBy.isEmpty   {
    healthactionplan.addedBy = "System"
} else {
    healthactionplan.addedBy = "Member"
}

答案 1 :(得分:4)

我认为healthactionplan.addedBy是字符串,因为错误说Value of Type String can never be nil这意味着您无法将Stringnil进行比较..所以请尝试检查字符串是否为空

 if healthactionplan.addedBy.isEmpty { 
      healthactionplan.addedBy = "Member"
 } else {
      healthactionplan.addedBy = "System"
 }

答案 2 :(得分:0)

在我的例子中,字符串不能为零。我需要声明一个可以接受nil的字符串。所以我声明了可选的字符串:

var addedBy: String? = String()

在此之后,我能够检查字符串的nil值。