前提・実現したいこと
現在SwiftでHTTP通信を行いAPIを取得するアプリの作成をしています。
発生している問題・エラーメッセージ
API取得の上でSwiftyJSONというライブラリを用いてコーディングを行ない
iOSシュミレーションでコンパイルしてみたいところ正常に動作したのですが、
iOS端末の実機でテストしてみたところ下記のエラーが発生しました。
signal SIGABRT
該当のソースコード
Swift
1import UIKit 2import SwiftyJSON 3 4 static func getAPI(stringUrl: String, parameters: [String:Any], completion: @escaping(JSON)->Void){ 5 6 let session = URLSession(configuration: URLSessionConfiguration.default, delegate: nil, delegateQueue: OperationQueue.main) 7 var request = URLRequest(url: URL(string: stringUrl)!) 8 9 do { 10 request.httpMethod = "POST" 11 request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") 12 request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted) 13 } catch { 14 15 } 16 let task:URLSessionDataTask = session.dataTask(with: request, completionHandler: {data, responce, error in 17 18 if error != nil { 19 print(CON.CONNECTION_ERROR.CONNECTION) 20 return 21 } 22 23 DispatchQueue.main.async { 24 do { 25 let json : JSON = try JSON(data: data!) 26 completion(json) 27 28 } catch { 29 print(CON.CONNECTION_ERROR.INCORRECT_DATA) 30 } 31 } 32 }) 33 task.resume() 34 }
試したこと
エラー箇所を調べた結果SwiftyJSONのライブラリを用いてデータ変換している箇所(let json : JSON = try JSON(data: data!))が原因のようでした。
どうにかsignal SIGABRT エラーを回避する方法はないでしょうか?
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。