私は非常に迅速で、私のコードでは特定の電子メールから JSON を取得します。JSON データは最初に迅速に配列に入れられますが、配列が null であるか、Json データがない場合、このエラーが発生します
タイプ 'NSNull' (0x1067a5748) の値を 'NSArray' (0x1067a4c58) にキャストできませんでした。
Check if optional array is emptyなどの他の投稿を読んでこれを修正しようとしましたが、機能していません。この問題は、以下のコードに付属しています
session.dataTask(with:request, completionHandler: {(data, response, error) in
if error != nil {
print(error)
} else {
do {
let parsedData = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any]
if let musicJob = parsedData["music"] as! [AnyObject]? {
for S in musicjob {
if let genre = S["genre"] as? String {
self.genres.append(genre)
}
}
}
Json が null の場合、この行でエラーが発生します
if let musicJob = parsedData["music"] as! [AnyObject]?
musicJobは、「30 個の値または 44 個の値」などのオブジェクトの数をカウントします。Json がない場合は nil を返し、クラッシュします。アプリがクラッシュしないように nil または空の配列の値をキャッチできる方法はありますか? ここでも、musicJob 配列が空でない限り、すべてが機能します。