【问题标题】:Do I need to use @synchronized when calling UITableView reloadData method?调用 UITableView reloadData 方法时是否需要使用@synchronized?
【发布时间】:2012-10-08 19:38:27
【问题描述】:

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

【问题讨论】:

    标签: iphone objective-c ios


    【解决方案1】:

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

    看到这个类似的问题:

    iOS - another thread needs to send reloadData to the mainthread

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-04
        • 2017-07-30
        • 1970-01-01
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多