【问题标题】:Do UIKit objects need to dealloc on the main thread?UIKit 对象是否需要在主线程上解除分配?
【发布时间】:2013-03-23 04:17:31
【问题描述】:

关于UIView,Apple 有一些关于线程的建议:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW147

对应用程序用户界面的操作必须在 主线程。因此,您应该始终调用 UIView 的方法 应用程序主线程中运行的代码中的类。这 只有在创建视图时这可能不是绝对必要的 对象本身,但所有其他操作应发生在主 线程。

在后台线程中释放 UIView 对象通常(不)安全吗?无论哪种情况,我都在寻找一些支持文档。

【问题讨论】:

    标签: uikit


    【解决方案1】:

    iOS 开发人员库文档链接到 NSView 限制 部分,所以我猜它们也适用于 UIView。

    NSView 限制

    NSView 类通常不是线程安全的。您应该仅从应用程序的主线程创建、销毁、调整大小、移动和对 NSView 对象执行其他操作。只要将绘图调用与 lockFocusIfCanDraw 和 unlockFocus 调用括起来,从辅助线程绘图就是线程安全的。

    来源: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Multithreading/ThreadSafetySummary/ThreadSafetySummary.html#//apple_ref/doc/uid/10000057i-CH12-123427

    我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      是的,UIKit 对象需要在主线程上释放。在后台线程中释放 UIView 对象是不安全的。详情请见here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-19
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多