2013-01-19 278 views
0

我有一个父类Networking和两个子Upload : NetworkingDownload : Networking。网络有公共@property (readonly) BOOL isExecuting;和。我需要从子类中访问它们,但是以线程安全的方式访问它们,因为这些操作将在不同的线程中进行。Threadsafe只读属性

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

编辑:我是否正确地得到它?这是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; 
    } 
} 
+0

我的直觉反应是'@synchronized(self)'。 –

回答

0

由于您的属性为只读,所以没有线程会继续更改其值。所以在任何时候,你都会得到相同的价值。

因此不需要担心这一点。

+0

感谢您的答案Anoop,但上传和下载可能会在同一时间,并在不同的线程。所以,这里是一个Upload.m的例子,我是否正确地得到它? – user1244109