0
私はロバだと答えることはありません...しかし、Swift 1.2からSwift 3へのプロジェクトの移行には夢中になります私は自分で勉強しようとしている)。 問題は私が理解できない問題に遭遇していることです。json pickerViewにエラーが発生しました予期しないエラーが発生しました。オプションの値をアンラップしています
WebからJSONを読み込んでピッカービューに読み込むカテゴリを取得していますが、試してみるとアプリがクラッシュしますJSON
/////////////// PICKER VIEW
func populatePicker(){
let urlCat = URL(string: "http://www.direttaweb.it/geoApp/html5/JSON_cat.php)");
let dataCat = try? Data(contentsOf: urlCat!);
var errorCat: NSError?
do {
/* HERE CRASH -> */ if let jsonObjectCat = try JSONSerialization.jsonObject(with: dataCat!, options: []) as? [String: AnyObject] {
// parse JSON
if let jsonObjectCat = jsonObjectCat as? [String: AnyObject] , errorCat == nil,
let jsonDataCat = JSONValue.fromObject(jsonObjectCat as AnyObject)?["data"]?.array {
for categoriaJSON in jsonDataCat {
if let categoriaJSON = categoriaJSON.array,
// 5
let categoria = Categoria.fromJSONCAT(categoriaJSON) {
categorie.append(categoria)
}
}
}
self.pickerCategorie.delegate = self
self.pickerCategorie.dataSource = self
}
}catch{
print(errorCat!)
}
}
をシリアル化することは奇妙なことは、上記の数行が、私は(私が充填てる配列を除く)はほぼ同じである機能を持つ別のオブジェクトと同じことをやっているということで、私は問題がない... 私は間違いをしていることを教えてください!
'Data(contentsOf:urlCat!);'が失敗し投げられたため 'dataCat'は' nil'です。 – shallowThought
Swift 3では、JSON辞書の表現は '[String:Any]'であり、同期 'Data(contentsOf')を使用してリモートURLからデータをロードすることを強くお勧めします。 – vadian
彼らはまた、死ぬ! – Ast