Ray Wenderlich による JSON Parsing in Swift チュートリアルを行っていました。
DataManager.getTopAppsDataFromAppsWithSuccess
inを使用している間、ブロックviewDidLoad()
の外側にある場合、配列を出力できません。DataManager
誰かがそのブロックの外で配列値を取得する方法を知っていますか?
コード :
var apps = [String]()
override func viewDidLoad() {
DataManager.getTopAppsDataFromAppsWithSuccess { (ByodData) -> Void in
let json = JSON(data: ByodData)
if let appArray = json.array{
for appDict in appArray {
var appName: String = appDict["name"].stringValue
self.apps.append(appName)
}
}
println(self.apps)
}
入力 JSON:
[
{
"id":1,
"name":"AdobeReader",
"url":"comp2014group1.herokuapp.com/apps/1.json";
},
{
"id":2,
"name":"BBCiPlayer",
"url":"comp2014group1.herokuapp.com/apps/2.json";
},
{
"id":3,
"name":"BBCNews",
"url":"comp2014group1.herokuapp.com/apps/3.json";
},
{
"id":4,
"name":"BBCWeather",
"url":"comp2014group1.herokuapp.com/apps/4.json";
}
]
出力:
[]