(iPhone)关于UIView的后台线程不应该做什么?



我知道并听说大多数UI相关的不应该在主线程之外的线程中完成。
我也知道你可以更新非视图相关的数据成员(你添加)的UIView派生类。

我想知道下面的操作是否可以在后台线程中执行。

  1. alloc UIView
  2. init UIView with/without(CGRectZero或init) frame info
  3. 修改UIView的frame/image(UIImageView的)属性
  4. 修改NSObject派生类的图像属性。(将UIImage作为数据处理)
  5. 使用subviews方法访问子视图
  6. 等。关于这个问题是否有明确定义的文档?

谢谢

你不应该在后台线程中做任何与视图相关的事情。你列出的所有项目都不应该在后台线程中完成。如果你要为MVC正确拆分应用,视图应该只包含指示它如何显示的项。所以任何与1相关的东西都应该只在主线程中。

所有的数据操作都应该驻留在模型中。可以根据需要将其线程化以提高性能。只是要注意,在主线程上发送任何消息来更新用于数据操作的UI。这包括通知。它们在创建它们的线程上被发送。所以在发送mainThread时很容易忘记切换到mainThread。

最新更新