gpt4 book ai didi

ios - 将 JSON 响应附加到 tableview -Swift

转载 作者:行者123 更新时间:2023-11-28 13:02:13 24 4
gpt4 key购买 nike

我正在调用一个返回用户信用卡的 json 响应的 PFCloud 函数,我想显示一些卡数据。我有一个我试图追加的数组,但它无法显示。我在 viewDidLoad 中调用了这个函数。

func loadCards(){

if let customer = PFUser.currentUser()?.objectForKey("stripe_customer_id") as? String {

PFCloud.callFunctionInBackground("listCards", withParameters: ["customerId": customer], block: { (success: AnyObject?, error: NSError?) -> Void in

if error != nil {
println(error)
}
else {
let responseString = success as? NSArray

if let cardToDisplay = responseString!.valueForKey("cardId") as? NSArray{


println(cardToDisplay)
self.displayCards.addObject(cardToDisplay)


}

self.tableView.reloadData()
}

})
}

}



// MARK: - Table view data source

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
println(self.displayCards.count)
return self.displayCards.count

}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: CardsTableViewCell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CardsTableViewCell

self.displayCards[indexPath.row] = cell.card.text!
return cell
}

这是我在控制台的日志:

0
0
0
0
0
0
(
"card_16v8teBnRIkk4qBepmuz2Mlk",
"card_16ymjoBnRIkk4qBeirtCdYdn",
"card_16ymfzBnRIkk4qBebvP4wwNO",
"card_16ymfzBnRIkk4qBeoRUVccws",
"card_16ymaPBnRIkk4qBeK2ju6ckP",
"card_16ylqyBnRIkk4qBeffUN2bwo",
"card_16ylq3BnRIkk4qBePGngNz8H"
)
1

最佳答案

  • 您需要在主线程中重新加载 tableView。当您进入后台发出请求时,您需要执行以下操作:

    dispatch_async(dispatch_get_main_queue()) { () -> Void in
    self.tableView.reloadData()
    }

    不仅仅是self.tableView.reloadData()

  • cardToDisplay 似乎是一个数组,因此将 self.displayCards.addObject(cardToDisplay) 更改为 self.displayCards = cardToDisplay

  • cellForRowAtIndexPath 中的 self.displayCards[indexPath.row] = cell.card.text! 行应该反过来.. 你应该将文本设置为 self.displayCards[indexPath.row]。所以应该是 cell.card.text = self.displayCards[indexPath.row]

关于ios - 将 JSON 响应附加到 tableview -Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com