let params = ["first":"string", "second":["any":""]] as [String: Any]
let serverUrl = URL(string: "https://example.execute-api.ap-southeast-2.amazonaws.com/prod")!
var request = URLRequest(url:serverUrl)
request.httpMethod = "POST"
request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue("secret", forHTTPHeaderField: "X-Api-Key")
do {
request.httpBody = try JSONSerialization.data(withJSONObject: params, options: [])
} catch _ as NSError {
return
}
這在第8行新的ios模擬器崩潰,但再次嘗試時。我測試了不同的假設,但似乎無法找出原因。JSONSerialization僅在新鮮的ios模擬器上崩潰
我測試:
- isValidJsonObject()
- 混合嵌套字典
- 空字符串
- 字典 '<' 字符串,任意> VS [字符串:任何]
崩潰錯誤消息是'線程1:EXC_BAD_ACCESS(code = EXC_i386_GPFLT)'。我已經檢查過線程是否有任何錯誤,但是我的大中央調度似乎以正確的順序輸出正確的數據。
任何線索?
這個問題只限於模擬器,還是會出現在物理ipad中?
編輯:進一步的谷歌搜索建議這是空字符串有助於返回零的問題。我可以強制空字符串爲空值,但是我仍然困擾於上述代碼只在新的模擬器中崩潰的事實,但完美地工作後。
你想傳遞什麼你第二個參數? –
嗨,我編輯修復了這個錯誤,並在完成請求的其餘部分添加了。然而,我的測試表明,這是params字典崩潰了JSONSerialization函數。 – yks