Evi*_*oer 5 objective-c thread-safety ios
我知道Apple正式建议UIKit仅用于主线程.但是,我也听说过自iOS 4.0以来UIImage是线程安全的.我找不到支持此声明的任何文档.
有没有人有任何信息来支持这种说法?作为用于存储数据和解码图像数据的类,如果设计良好,UIImage应该是线程安全的.
Eri*_*erg 27
直接来自Apple的UIImage文档
图像对象是不可变的,因此您无法在创建后更改其属性.这意味着您通常在初始化时指定图像的属性,或者依赖图像的元数据来提供属性值.它还意味着图像对象本身可以安全地从任何线程使用.更改现有图像对象属性的方法是使用一种可用的便捷方法来创建图像的副本,但具有所需的自定义值.
(强调我的)
因此,至少在截至2014年5月13日的当前版本的SDK中,"图像对象本身可以安全地从任何线程使用".
确实,Apple建议在主线程上使用UIKIt中的元素:
注意:在大多数情况下,UIKit类只能从应用程序的主线程中使用.对于从UIResponder派生的类或者涉及以任何方式操纵应用程序的用户界面的类尤其如此.
由于UIImage不是从UIResponder派生的,因此您实际上并未在界面/屏幕上显示它.然后在另一个线程上使用UIImages进行操作应该是安全的.
这是基于我的经验,我没有看到任何关于它的官方文件.
| 归档时间: |
|
| 查看次数: |
4301 次 |
| 最近记录: |