1
我正在使用Alamofire和SwiftyJSON將JSON數據傳遞給數組。SWIFT2:對數組的JSON請求返回不同的值
第一打印返回正確的數組:
[(1, "Arena", "Oklahoma"), (2, "Stafium", "Berlin")]
但第二打印一個空數組:
[]
我不明白爲什麼?
這是我的代碼。 解決的@NickCatib
typealias cType = (ID: Int,Tag: String, Location: String)
var cBlue = [cType]()
var NumRows = 0
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
Alamofire.request(.GET, url, parameters: ["postType": "live"]).responseJSON { (_, _, result) in
switch result {
case .Success(let data):
let json = JSON(data)
for(_,subJSON) in json["LocalInfo"] {
let ID = subJSON["id"].int!
let Tag = subJSON["Tag"].string!
let Location = subJSON["Location"].string!
let Info = (ID: ID, Tag: Tag, Location: Location)
cBlue.append(Info)
}
self.tableView.reloadData()
case .Failure(_, let error):
print("Request failed with error: \(error)")
}
}
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
reloadUI()
return cBlues.count
}
func tableView(tableView: UITableView,
cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableView.dequeueReusableCellWithIdentifier("CellConcert",
forIndexPath: indexPath)
let info = cBlue[indexPath.row] as! Info
cell.textLabel?.text = info.Tag
return cell
}
}
這是正確的嗎?
感謝
謝謝!所以如果我想使用Alamofire並將結果打印到Table中,我必須使用reloadUI()? – user3163404
是啊,基本上,你將不得不通知視圖或控制器或其他任何你實際收到的數據,並且cBlue數組充滿了信息。對於tableView,可以使用reloadData()方法重新填充表格。另一方面,如果你使用UIView,UILabels等,你將不得不創建你自己的函數 - 在答案是reloadUI()將填充你的信息。 – Miknash
Humm我不明白..你能提供一個例子嗎? – user3163404