【发布时间】:2017-08-02 19:56:18
【问题描述】:
我正在尝试检查 responseObject != nil 但它总是返回 true。
我不知道(如何检查ANY? 的nil 值)
这是我的代码:
success: { (operation: AFHTTPRequestOperation?,responseObject: Any?) in
print("view service reponse: \(String(describing: responseObject))")
print("view service reponse: \(responseObject!)")
if responseObject != nil
{
let jsonObjects : NSArray = responseObject as! NSArray
print("All data1 : \(String(describing: jsonObjects))")
for dataDict : Any in jsonObjects {
崩溃问题:
在日志消息中:
查看服务响应:可选(无)
查看服务响应:无
无法将“Swift.Optional”(0x7f9d44715db0)类型的值转换为“NSArray”(0x60000004f4f8)。 (lldb)
我也试过下面的代码,
if let jsonOject = responseObject as? NSArray {
// mean your responce is array type
}
else{
// oterwise your responce in not array
}
但我还是遇到了崩溃......
【问题讨论】:
-
请发帖
responseObject -
responseObject 肯定渴望别的东西。你会因为类型转换错误而崩溃。您需要将其转换为所需的类型。
-
responseObject 是 NSDictionary
-
在这里我更新了我的帖子@RAJAMOHAN-S
-
如果
responseObject != nil成功,那么您需要取消引用responseObject。它在可选项中包含可选项。通常可选的是.some<T>或.none。您的类型包含.some<.none>。并且不要在 Swift 中使用NSArray/NSDictionary。使用本机类型。并且不要注释编译器可以推断的类型