调用UITableView reloadData方法时是否需要使用@synchronized?

时间:2012-10-08 19:38:28

标签: iphone objective-c ios

我有很多线程同时调用UITableView的reloadData方法。我真的必须在它周围放一个@synchronized块吗?

2 个答案:

答案 0 :(得分:5)

与视图中的任何其他方法一样,

reloadData应仅仅从主线程调用。所以你不需要@synchronized,因为一次只能有一个线程。

如果您在后台线程上并希望重新加载表视图,请使用dispatch_async确保重新加载发生在主线程上:

dispatch_async(dispatch_get_main_queue(), ^{
    [myTableView reloadData];
});

答案 1 :(得分:5)

您不应该从主线程以外的线程调用reloadData。

看到这个类似的问题:

iOS - another thread needs to send reloadData to the mainthread