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()
}
}
本当に誰の考えにも感謝します。
あなたのストーリーボードの 'TableView'の' IBOutlet'をクラスに追加する必要があります。それだけで、テーブルビュー操作を再読み込みして実行することができます。私が言ったようにあなたは必要、 – Dershowitz123
を取得していますクラスに 'TableView'の' IBOutlet'を追加してください。 –
: '「メンバーへのあいまいな参照『テーブルビュー(_::numberOfRowsInSection :) '』」 「自己」を追加する必要がありました、私はこれを追加すると、私はエラーメッセージが – Dershowitz123