我有一个if语句,我希望有两个条件,如下所示:
if let name = json["resource"]["fields"]["name"].stringValue && name.hasPrefix("/")
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到错误"使用未解析的标识符名称".那么解决方案是什么?
if let name = json["resource"]["fields"]["name"].stringValue && "test".hasPrefix("/"){
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我得到一个错误"可选类型'$ T16'不能用作布尔值;测试'!= nil'而不是"
这可能是一个愚蠢的问题,但我必须承认我迷失了......
谢谢你的帮助
您没有使用常规if语句,您正在使用可选绑定,并且您无法将绑定与对绑定值的检查结合起来.你可以把它分解成这样的东西.
if let name = json["resource"]["fields"]["name"].stringValue {
if name.hasPrefix("/") {
// stuff
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:在Swift 1.2中看起来已经发生了变化.根据发行说明,现在可以为if let添加额外的条件,而let语句:
"if let"构造已经扩展为允许使用类似于泛型约束的语法在单个if(或while)语句中测试多个选项和保护条件:
if let name = json["resource"]["fields"]["name"].stringValue where name.hasPrefix("/") {
// stuff
}
Run Code Online (Sandbox Code Playgroud)
上面的代码应该达到你想要的.(未测试)
| 归档时间: |
|
| 查看次数: |
2833 次 |
| 最近记录: |