2016-07-01 8 views
0

私はswift (2.3)を使用しています。作成した変数にアクセスする際に問題が発生しました。スコープ外のクラスデータにアクセスする

私はlet.pdf = getData..)1を介して、私は私のクラスから(readableJSON経由)JSONデータを取得することができるよnamesArray

の更新内容を取得しようとし、その後、2)pfd.getPetData...

よしかし、私は新しく人口の多いnamesArrayをこの「スコープ」の外に戻す方法を考え出すことはできません(それは正しい言葉ですか?)ので、super.viewDidLoadの外にアクセスすることができます。

最終的に、私はに行くために、配列の数が欲しい:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return namesArray.count  
} 

ここではコア面積、数分のtableViewのものです。

import UIKit 
import SwiftyJSON 
class ViewController: UIViewController, UITableViewDelegate { 

    var namesArray = [String]() 
    override func viewDidLoad() { 
     super.viewDidLoad() 

     let pfd = getData() 

     pfd.getPetData { readableJSON in 

      for (key,subJson) in readableJSON[]["data"] { 
       let title = subJson["title"].string! 
       namesArray.append(title) 
      } 
     } 
     print("There are \(self.namesArray.count) items in namesArray now") 
    } 

    class getData { 
     func getPetData(completion: (JSON) ->()) { 
      let url = NSURL(string: "<my_JSON_URL_HERE> 
      let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in 
      let readableJSON = JSON(data:data!) 
      completion(readableJSON) 
      } 
      task.resume() 

     } 
    } 

本当に誰の考えにも感謝します。

答えて

0

テーブルビューのIBOutletViewControllerに追加します。テーブルビューをここに再ロードしてください:

for (key,subJson) in readableJSON[]["data"] { 
       let title = subJson["title"].string! 
       namesArray.append(title) 
       self.tableView.reloadData() 
      } 
+0

あなたのストーリーボードの 'TableView'の' IBOutlet'をクラスに追加する必要があります。それだけで、テーブルビュー操作を再読み込みして実行することができます。私が言ったようにあなたは必要、 – Dershowitz123

+0

を取得していますクラスに 'TableView'の' IBOutlet'を追加してください。 –

+0

: '「メンバーへのあいまいな参照『テーブルビュー(_::numberOfRowsInSection :) '』」 「自己」を追加する必要がありました、私はこれを追加すると、私はエラーメッセージが – Dershowitz123

関連する問題