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

ike*_*8me 4 iphone objective-c ios

我有很多线程同时调用UITableView的reloadData方法.我是否真的必须在其周围放置一个@synchronized块?

ben*_*ado 5

reloadData与视图上的任何其他方法一样,只应从主线程调用.所以你不需要@synchronized因为一次只有一个线程.

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

dispatch_async(dispatch_get_main_queue(), ^{
    [myTableView reloadData];
});
Run Code Online (Sandbox Code Playgroud)


Tom*_*ift 5

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

看到这个类似的问题:

iOS - 另一个线程需要将reloadData发送到mainthread