2016-11-29 74 views
-2

这是我的代码斯威夫特:string类型的值不能为零,比较是不允许

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

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

我甚至都遵循了这一ThisThis。但仍然无法解决。任何人都可以解释为什么?

+4

“MyHealthActionPlanCondition”的声明是什么样的? – courteouselk

+4

在其他问题中,您没有填充'healthactionplan' –

回答

4

我觉得healthactionplan.addedBy是String作为错误说Value of Type String can never be nil,这意味着你不能比较Stringnil ..所以尝试检查该字符串为空或不字符串类型的

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

值不能是零,比较是不允许

错误消息显示你的一切

addedBy是String。所以检查isEmpty关于addedBy

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

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

var addedBy: String? = String() 

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