1
在原子屬性Objective-C中(在桌面上還是在iPhone平臺上),與默認的原子屬性相反,是否有一個很好的經驗法則?我明白其中的差異 - 原子性以犧牲性能爲代價來保證整個價值 - 但我看到的大多數例子都使用非原子性質(並且不是不穩定的),所以顯然需要原子性的情況以及不存在的情況。@property原子性的經驗法則?
任何人都可以提供一個簡單的指導方針,當我應該使用原子屬性,當我應該青睞nonatomic的?
在原子屬性Objective-C中(在桌面上還是在iPhone平臺上),與默認的原子屬性相反,是否有一個很好的經驗法則?我明白其中的差異 - 原子性以犧牲性能爲代價來保證整個價值 - 但我看到的大多數例子都使用非原子性質(並且不是不穩定的),所以顯然需要原子性的情況以及不存在的情況。@property原子性的經驗法則?
任何人都可以提供一個簡單的指導方針,當我應該使用原子屬性,當我應該青睞nonatomic的?
只要可能,您應該傾向於使用nonatomic
。一般來說,這意味着只能通過單個線程或屬性來設置/訪問屬性,這些屬性的訪問受某些類型的更高級同步保護。請注意0屬性訪問不保證線程安全。換句話說,依賴於atomic
屬性值的算法本身必須是線程安全的,以便整個系統是線程安全的。考慮到這一點,通常可以在保持系統線程安全的同時使屬性nonatomic
。