Threadsafe readonly属性

时间:2013-01-19 18:19:43

标签: ios thread-safety readonly

我有一个父类Networking和两个孩子Upload : NetworkingDownload : Networking。网络有公开@property (readonly) BOOL isExecuting;@property (readonly) BOOL isDone;。我需要从子类中访问它们,但是以线程安全的方式访问它们,因为操作将在单独的线程中进行。

实现它的优雅方式是什么?谢谢!

编辑:所以我能正确理解吗?这是Upload.m

的一个例子
#import "Upload.h"
#import "Networking.h"

@interface Upload ()

@property (assign) BOOL isExecuting;

@end

@implementation Upload

- (void) setIsExecuting:(BOOL)isExecuting{
    @synchronized (self) {
        _isExecuting = isExecuting;
    }
}

1 个答案:

答案 0 :(得分:0)

由于您的属性是只读的,因此没有任何线程会继续更改其值。所以在任何一个线程中,你都会得到相同的价值。

因此无需担心。