在iOS上对GUI进行编程时,属性通常声明为nonatomic,因为我们通常只在主UI线程上访问这些属性(例如在Android上)。

@interface TKDViewController : UIViewController
    @property (nonatomic, strong) NSMutableArray *tableData;
@end

所以,我的问题是:如果我将属性更改为atomic,那么我可以在主UI线程之外访问,对吗?如果这样做,我会遇到一些问题吗?
@interface TKDViewController : UIViewController
    @property (atomic, strong) NSMutableArray *tableData;
@end

谢谢 :)

最佳答案

atomicIBOutlet一起使用将为您提供线程安全的setter,而使用nonatomic会为您提供不安全的setter。
所以,我的问题是:如果我将属性更改为atomic,那么我可以在主UI线程之外访问,对吗?如果这样做,我会遇到一些问题吗?
是的,除非您在主线程上调用[view setNeedsDisplay](在后台进行了一些更改之后)以更新UI(或避免在后台线程上访问它),否则您将遇到一些问题。原子只是互斥锁。

关于objective-c - Objective-C : access properties outside of main UI Thread,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24820318/

10-12 02:57