tableview不想在swift中重新加载

时间:2014-08-15 00:27:25

标签: ios uitableview 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不是零,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}>

因此,在我的webservice回调之后没有重新加载tableview。 有谁有想法吗? 我错过了什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

对不起噪音,我已经管理通过删除故事板中的场景并重新创建所有内容来使其工作...可能是一个不好的参考或某些东西......可能与原型细胞

答案 1 :(得分:0)

只是检查,你的tableview的数据源和代理是否正确连接?如果在numberOfRowsInSection中放置一个断点,它会触发吗?

PS。我没有代表评论,所以不知道在哪里发布这个。