![](/img/trans.png)
[英]TableView doesn't reload itself once adding a value into an array in Swift
[英]tableview doesn't want to reload in swift
我正在尝试使用来自Webservice调用的数据设置简单的tableview,但是当我想重新加载tableview时遇到了几个问题
@IBOutlet var tableView: UITableView!
var homeItems: NSArray! = NSArray()
override func viewDidLoad() {
super.viewDidLoad()
APIClient.getHomeItemWithCallback { (homeItems, error) -> Void in
NSLog("HERE")
self.homeItems = homeItems
dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadData()
})
NSLog("items here %@", self.homeItems)
NSLog("tableview %@", self.tableView)
}
}
// MARK: UITableViewDataSource
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
NSLog("home items %@", self.homeItems)
return self.homeItems.count
}
[...]
因此,少数调试NSLog给了我:
在tableview初始化时(第二次?也许是tableview委托?)
2014-08-15 02:11:40.772 APP[77459:10573070] home items (
)
2014-08-15 02:11:40.774 Medley[77459:10573070] home items (
)
在我的块的回调中
2014-08-15 02:11:41.473 Medley[77459:10573070] HERE
设置后的项目
2014-08-15 02:11:41.473 Medley[77459:10573070] items here (
"<Medley.MDHomeItem: 0x7af95080>",
"<Medley.MDHomeItem: 0x7af957c0>",
"<Medley.MDHomeItem: 0x7afa00a0>",
"<Medley.MDHomeItem: 0x7afa00f0>"
)
tableview不是nil,Outlet还可以...等等...
2014-08-15 02:11:41.474 Medley[77459:10573070] tableview <UITableView: 0x7c167200; frame = (0 0; 320 568); clipsToBounds = YES; opaque = NO; autoresize = W+H; gestureRecognizers = <NSArray: 0x7b06b9e0>; layer = <CALayer: 0x7b06a230>; contentOffset: {0, 0}; contentSize: {320, 0}>
因此,在我的Web服务回调之后,不会重新加载tableview。 有人有什么主意吗? 我缺少什么?
谢谢!
对不起,我设法通过删除情节提要中的场景并重新创建所有内容来使它正常工作……可能是不好的参考之类的东西……也许带有原型单元
仅检查一下,您的tableview的数据源和委托是否正确连接? 如果在numberOfRowsInSection中放置一个断点,是否会触发?
PS。 我没有代表只发表评论,所以不确定在哪里发布。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.