2016-07-14 7 views
0

最後の3日間、私はこれを使っていくつかの進歩を遂げようとしていましたが、何を試しても私はこの問題を解決する方法を頭に入れていないようです問題。この回答は私には(私は思うが)ほとんどすべてのところで(しかし、かなり):Capturing data from AlamofireJSONを操作するために使用できるAlamofireコールバックの作成

私は何をしようとしているアプリのレビューの数を取得します。 Alamofireはネットワークコールを非同期的に処理するため、コールバックを作成しようとしています。コールバックを作成すると、実際にJSONが返すコールバックを作成できます。以下のコードでは、Alamofire関数の外部でJSONのレビューを取得しようとしており、reviewJSON変数にJSONを割り当てています。私は間違って何をしていますか?

+0

のようなものです参照してください。 'JSON'が正しく動作します。 jsonデータを貼り付けることで、より良い結果を得ることができます。 – Dershowitz123

+0

こんにちは、Jsonはここに表示されます:https://itunes.apple.com/de/rss/customerreviews/id=529479190/json – Patrick

答えて

0

次のようにしてください。それはあなたのために働く場合

//のviewDidLoadで、このようなあなたのgetDataFromInterwebs

func getDataFromInterwebs(theURL: String, complete:(reviews: JSON) -> Void) { 

       Alamofire.request(.GET, theURL).responseJSON { response in 
        guard response.result.error == nil else { 
         print("error calling GET ") 
         print(response.result.error!) 
         return 
        } 

        if let value = response.result.value { 
         let appReviewsFromAppStore = JSON(value) 
         complete(reviews: appReviewsFromAppStore) 
        } 
        else { 
         complete(reviews: "Error occured while trying to parse data") 
         print("error parsing") 
        } 

       } 
      } 
    } 

の変更は、あなたがパースされていないこの

override func viewDidLoad() { 
     super.viewDidLoad() 
     getDataFromInterwebs(appStoreReviewsURL) { (reviews) in 
      var reviewJson = reviews 
      dispatch_async(dispatch_get_main_queue(), { 
       self.didGetRattingJson(reviewJson) 
      }) 
     } 
} 

し、最終的に

func didGetRattingJson(reviewJson: JSON) { 
     //do whatever you want to do here 
    } 
+0

ありがとうKuntal。それでもまだ動作しません - 最終的な機能didGetRattingJsonはどんな価値がありますか? – Patrick

関連する問題