2016-05-04 20 views
-1

Parseからローカル配列に配列を格納しようとすると、findObjectsInBackgroundWithBlock {...}の中でのみアクセスできます。私はそのブロックの外にそれを印刷するとき、それは... []示しParseからローカル配列に配列を格納する

コード:

配列がまだ読み込まれていないので、それがバックグラウンドで実行しているので、それが最も可能性が高いです
var qArray : [[Int]] = [] 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let query = PFQuery(className: "Trivia") 
    query.findObjectsInBackgroundWithBlock { 
     (objects: [PFObject]?, error: NSError?) in 
     if objects != nil { 
      if let objects = objects { 
       for object in objects { 
        self.qArray.append(object["mainPattern"] as! [Int]) 
       } 
       print(self.qArray) // Prints a multi dimension array 
      } 
     } 
     if error != nil { 
      print(error) 
     } 
    } 
    print(self.qArray) // prints [] 
} 
+0

あなたが作った間違いを理解しましたか? –

答えて

0

。この問題を回避するには、dispatch_groupを試してみてください。

0

私はあなたが誤解していると思います。findInBackgroundを意味します。コールバックが実行された後のコードを意味するので、query.findInBackground ....を呼び出し、次の行であるprint(self.qArray)を続けます。後である時点で、データベースから聞き取り、コールバック内のすべてのコードを実行します。これは、配列が最終的に入力されるときです。

関連する問題