繁体   English   中英

tableview不想快速重新加载

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM