現在、シングルトンでJSONを解析して複数のクラスが持つことができる最善の方法を判断しようとしています。そうすることで、シングルトンに格納されたデータはなくなり、デカップリングされたままになります。私はJSON解析関数を考え出しましたが、それを行うにはより良い方法があるのだろうかと疑問に思っています。現在使用している機能は次のとおりです。JSONをシングルトンで解析する
func parseJSONData(_ jsonData: Data?) -> [String : AnyObject]?
{
if let data = jsonData {
do {
let jsonDictionary = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String : AnyObject]//Parses data into a dictionary
// print(jsonDictionary)
return jsonDictionary
} catch let error as NSError {
print("Error: \(error.localizedDescription)")
}
}
return nil
}
'[String:AnyObject]'から '[String:Any]'への正しい辞書タイプの変更を使用して開始することができます。 'options:.mutableContainers'を使ったBtwは無意味です。 let optionsパラメータを省略して、メソッドをスローし、戻り値の型をオプションでないものに変更します。 'JSONSerialization.jsonObject(with:data)を次のように試してみてください。 [文字列:任意] ?? [:] ' –
JSONデータを辞書に変換するのではなく、データを構造化してコード化してデコードしてから、Singletonプロパティに格納することをお勧めします –