2016-04-06 10 views
0

基本的に、私は非同期ネットワーキング機能があります。ブロックの情報をSwiftに保存するにはどうしたらいいですか?

func networking(callback:NSDictionary -> Void) { 


    //stuff happens here 



    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data, response, error in 
     if let error = error { 
      print("ERROR: \(error)") 
      return 
     } 
     do { 
      let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) 
      //print(json) 
      callback(json as! NSDictionary) 

      if let dataDict = json["data"] as? [String:AnyObject], 
       let rememberToken = dataDict["remember_token"] as? String { 
        self.rememberToken = rememberToken 

        //print("SUCCESS: \(rememberToken)") 
        // display success label & make button to get schedules available 
      } 
     } catch { 
      print(error) 
     } 
    } 

    task.resume() 
} 

をそして、私にできることすべては、私は戻って取得しています印刷(JSON)データです。私は本当に覚えているトークンがほしいだけです。私はそれをプロパティに保存しています。私が持っている問題は、プロパティを呼び出すと、メインスレッドが最初に実行されてから何も得られないということです。そこに保存されたプロパティから保存トークンにアクセスするにはどうすればよいですか?

他の場所に保管することはできますか?

これを行うにはどうすればよいですか?ブロックに

好ましいがなるブロックを使用

  1. の委任を使用してプロトコル

+0

覚え書きトークンは、コールバック(トークンを印刷している行の近く)のみで使用する必要があります。 – paulvs

+0

トークンを保存するために式の後に**コールバック行を挿入する – vadian

+0

self.rememberToken = rememberTokenの後の行にコールバック(!NSDictionaryとしてjson)を移動しましたが、次の関数に移動して " self.rememberToken)、私はまだ何も得ません。 – John

答えて

0

は2つのあなたがこれを扱うことができる方法があります。

チュートリアルがたくさんあるので、両方の回答がありますので、ここで実装する必要はありません。

関連する問題