iOS8 / Swift奇怪的null行为与REST服务的响应

时间:2015-02-12 17:16:59

标签: ios rest swift alamofire

在我的整个项目中,我可以完美地检查Alamofire的响应和数据

if fooData != nil {
//do stuff
}

在这种情况下,Swift似乎在检查实际传入类型是什么时遇到了问题

如果我打印它,我得到的是

<null>

这应该是什么?一个null数组?对NSDictionary或NSArray的强制转换都失败了。

Rest响应与整个项目中始终相同,我可能会收到一个空值,并且它会被其他地方捕获。

€dit更多代码: 我的要求:

       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
    }

}

print语句给了我上面提到的空表示,但显然不能识别为nil

来自节点后端的响应为

index.sendJsonResponse(res, 200, null);

1 个答案:

答案 0 :(得分:1)

在Playground中试用此代码:

let fooData:AnyObject = NSNull()
println(fooData)

打印<null>

fooData不是nil,而是NSNull

的实例