2016-07-02 4 views
1

私はムービーのリストでJSONを受け取り、タイトルを配列に入れようとするプログラムがあります。コードの誤った部分は以下の通りです:私はそれを実行するとJSONから読み込むときに「致命的なエラー:予期せず見つかったオプション値をアンラッピングしています」

var movieArray: [JSON]! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    Alamofire.request(.GET, "https://api.themoviedb.org/3/discover/movie", parameters: ["sort_by" : "popularity", "api_key" : "secret"]) 

    .validate() 
    .responseJSON { response in 
     switch response.result { 
      case .Success: 
       let json = JSON(response.result.value!) 
       //print(json) 
       let arraySize: Int = json["results"].count 
       for num in 0...arraySize { 
        let x = json["results"][num]["title"] 
        print(x) 
        self.movieArray[num] = (x) 
       } 
       print(self.movieArray[0]) 

      case .Failure(let error): 
       print(error) 
      } 
    } 

    self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell") 
} 

は、私はこのエラーを取得する:なぜこれが起こっている

Puccini for Beginners 
fatal error: unexpectedly found nil while unwrapping an Optional value 
(lldb) 

誰も説明できますか?

答えて

1

このエラーは、nilのオプション値をアンラップしようとすると発生します。この場合、movieArrayはオプションの値です。つまり、nil値を持つ可能性があり、使用する前に値を持つか、値があるかどうかを確認します。

var movieArray = [JSON]() 

または

//---- Another way 
guard movieArray != nil else { 
    print("array is nil") 
} 

// Do stuff with movieAray 

nilを初期化しないので、どのような全くの要素されていないmovieArrayを使用して文self.movieArray[num] = (x)あるために、配列を確認してください - あなたはでそれを初期化することができ、それを解決するために

だからnum値がある可能性があり、それゆえに割り当てエラーが発生します。

BR

関連する問題