2016-11-29 54 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() 

在此之後,我能夠檢查字符串的零值。

相關問題