iOS:在主线程以外的线程中调用UIApplication的方法是否安全?

问题描述 投票:5回答:2

有人说必须在主线程中使用UIApplication,但我没有在Apple的文档中看到此内容。所以有人可以告诉我在单独的线程中使用UIApplication是否安全吗?如果不安全,请在哪里记录?

编辑:我专注于那些操作本地通知的方法。

iphone ios uiapplication
2个回答
6
投票

大多数UIKit类不是线程安全的。 WWDC等已对此进行了详尽的讨论,但记录的文献并不多。我能找到的最好的是TN2109,它反复讨论了如何不允许从辅助线程调用UIKit。

请注意,此规则有许多记录在案的例外。例如,UIApplication上的beginBackgroundTaskWithExpirationHandler和相关方法被明确标记为可以安全地从非主线程调用。 (这也意味着从其他线程可以安全地调用UIApplication的其他方法,因为这些方法是专门调用的。)该规则也有其他例外,主要涉及绘图(UIImage和UIColor实例至少在iOS 4起是线程安全的)。


0
投票
UIApplication是UIResponder的子类,并且是UIKit框架的一部分。因此,我认为这不是线程安全的,因为有资料表明UIKit类不是线程安全的。
© www.soinside.com 2019 - 2024. All rights reserved.