我正在从 API 获取作为对象数组的响应。所以我将该数据存储到一个变量中。响应可能包含一些非空值和一些空值。当将值分配给任何变量时,我收到类似“无法将 NSNUll 转换为 NSString”的错误。如果数组包含空值,那么我想用“空格”或任何东西替换这些错误值。
let parameters: Parameters = [
"PhoneNumber":currentlevelphonenum
]
Alamofire.request("https://us-central1-192704.cloudfunctions.net/Transaction/post", method: .post, parameters: parameters, encoding: JSONEncoding.default)
.responseJSON{ //response in
response in switch response.result {
case .success(let JSON):
//print("Success with JSON: \(JSON)")
let response = JSON as! NSDictionary
//example if there is an id
let status:[NSObject] = response.object(forKey: "Status") as! [NSObject]
print("status",status)
let errormessage:[NSObject] = response.object(forKey: "Message") as! [NSObject]
print("errormessage",errormessage)
let contactViewController = self.storyboard?.instantiateViewController(withIdentifier: "TransactionDetails")as! TransactionDetails
contactViewController.sstatus = status as! [String]
contactViewController.mmessage = errormessage as![String]
self.navigationController?.pushViewController(contactViewController, animated: true)
case .failure(let error):
print("Request failed with error: \(error)")
}
}
我也想将状态和消息数组发送到下一个具有空值的 View Controller 。如何解决这个问题?
API 响应如下:[failed, <null>, <null>, succeeded, succeeded, succeeded, succeeded, succeeded, <null>, succeeded, <null>, <null>, <null>, succeeded, <null>, succeeded, succeeded, succeeded, failed, failed, failed, <null>, pending, Failed, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, pending, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, pending, pending, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, <null>, pending, pending, pending, <null>, <null>, pending, pending, <null>, <null>, <null>, <null>]
我想用空格替换空值并将该数组发送到下一个 Controller 。
最佳答案
首先不要在Swift中使用NSDictionary
和NSObject
,使用原生类型和键订阅
let response = JSON as! [String:Any]
//example if there is an id
let status = response["Status"] as! [Any]
print("status",status)
let errormessage = response["Message"] as! [Any]
print("errormessage",errormessage)
要将 NSNull
更改为 ""
使用 map
let mappedStatus = status.map { $0 is NSNull ? "" : $0 }
关于arrays - 无法快速将 NSNULL 转换为来自 API 的 NSString 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54911782/