0
如果聲明爲(nonatomic, copy)
,那麼在對屬性的每次訪問中都複製NSString?複製從不同線程訪問的NSString的內存屬性
如果字符串是從不同的線程訪問/變異的,並且使用副本聲明的,是否需要用NSLock封裝對字符串的訪問?
如果聲明爲(nonatomic, copy)
,那麼在對屬性的每次訪問中都複製NSString?複製從不同線程訪問的NSString的內存屬性
如果字符串是從不同的線程訪問/變異的,並且使用副本聲明的,是否需要用NSLock封裝對字符串的訪問?
copy
屬性指示在分配屬性時將創建對象的副本。二傳手應該是這個樣子:
- (void)setMyProperty:(NSString *)value {
_myProperty = [value copy];
}
然而,吸氣始終返回對象自身的副本:
- (NSString *)myProperty {
return _myProperty;
}
最後,如果屬性是NSString *
,這是不可改變的,還有如果沒有問題有很多線程在同一時間讀取它。沒有必要使用鎖來訪問該屬性。
看看Apple的文檔:Copy Properties Maintain Their Own Copy。
謝謝。我的意思是從不同的線程訪問/變異。 – jarryd