2015-12-10 66 views
-1

如何将字符串转换为swift2中的Bool? 当我做如下转换。将字符串转换为bool - swift2

我得到的错误:

"Cast from 'String' to unrelated type 'Bool' always fails"

let datastring = "False" 
let returnValue = datastring as? Bool 

回答

3

您可以通过布尔设置使用做到这一点的数据串是否是真正的

let returnValue = dataString.lowercaseString == "true" 

这有效地转化为

var returnValue: Bool = false 
if(dataString.lowercaseString == "true"){ 
    returnValue = true 
} 

如果你想要捕获所有“truthy”的价值观,如“1”,“真实的”,“是”,“上”,您可以使用

let lowercase = dataString.lowercaseString 
let returnValue = lowercase == "true" || lowercase == "1" || lowercase == "yes" || lowercase == "on" 
+0

是Swift或Objective C的任何程序员使用'on'作为布尔值?!我很困惑,这肯定是'no'的错字;) – x4h1d

+0

@ x4h1d程序员几乎总是使用“true”,但“on”也是有效的布尔型(“on”/“off”) – Jojodmo

2

如果你想使用NSString

的boolValue财产
(dataString as NSString).boolValue 
3

我宁愿:

let returnValue = NSString(string:dataString.lowercaseString).boolValue 
0

的字符串值,不能被铸造在任何编程语言中的布尔值,你可能要拿出一些黑客通过上面的人提及。

另一种方法是使用枚举。