2013-01-19 227 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