iOS8/Swift 来自 REST 服务的响应出现奇怪的空行为
iOS8/Swift strange null behaviour with response from REST service
在我的整个项目中,我可以完美地检查
的 Alamofire 响应和数据
if fooData != nil {
//do stuff
}
在这种情况下 Swift 似乎在检查实际传入类型时遇到问题
打印出来的结果是
<null>
这应该是什么?空数组?强制转换为 NSDictionary 或 NSArray 都失败。
其余响应与整个项目中的始终相同,我可能会收到一个空值,并且在其他任何地方都会被捕获。
€编辑更多代码:
我的要求:
Alamofire.request(.GET, "\(CurrentConfiguration.serverURL)/api/users/\(CurrentConfiguration.currentUser.id)/friends/\(targetUser)",encoding:.JSON)
.validate()
.responseJSON {(request, response, friendData, error) in
if friendData != nil {
println(friendData!)
//this is where the app obviously crashes as there is nothing inside of "friendData"
let resp = friendData as NSDictionary
//load friendData into the UI
}
}
打印语句给了我上面提到的 null 表示,但显然不能识别为 nil
来自节点后端的响应为
index.sendJsonResponse(res, 200, null);
在 Playground 中尝试此代码:
let fooData:AnyObject = NSNull()
println(fooData)
它打印 <null>
.
fooData
不是 nil
,而是 NSNull
的实例
在我的整个项目中,我可以完美地检查
的 Alamofire 响应和数据if fooData != nil {
//do stuff
}
在这种情况下 Swift 似乎在检查实际传入类型时遇到问题
打印出来的结果是
<null>
这应该是什么?空数组?强制转换为 NSDictionary 或 NSArray 都失败。
其余响应与整个项目中的始终相同,我可能会收到一个空值,并且在其他任何地方都会被捕获。
€编辑更多代码: 我的要求:
Alamofire.request(.GET, "\(CurrentConfiguration.serverURL)/api/users/\(CurrentConfiguration.currentUser.id)/friends/\(targetUser)",encoding:.JSON)
.validate()
.responseJSON {(request, response, friendData, error) in
if friendData != nil {
println(friendData!)
//this is where the app obviously crashes as there is nothing inside of "friendData"
let resp = friendData as NSDictionary
//load friendData into the UI
}
}
打印语句给了我上面提到的 null 表示,但显然不能识别为 nil
来自节点后端的响应为
index.sendJsonResponse(res, 200, null);
在 Playground 中尝试此代码:
let fooData:AnyObject = NSNull()
println(fooData)
它打印 <null>
.
fooData
不是 nil
,而是 NSNull