只是如果可以的話,我一直(因爲學習OBJ-C)編寫的INT屬性如下一個簡單的問題...@property int類型?
@property(nonatomic, assign) int myValue;
現在我想,這可能是矯枉過正,我還不如寫...
@property int myValue;
只是好奇,我知道,「分配」是默認的行爲,而「非原子」可以更快的分數......
所有最好的
Gary
只是如果可以的話,我一直(因爲學習OBJ-C)編寫的INT屬性如下一個簡單的問題...@property int類型?
@property(nonatomic, assign) int myValue;
現在我想,這可能是矯枉過正,我還不如寫...
@property int myValue;
只是好奇,我知道,「分配」是默認的行爲,而「非原子」可以更快的分數......
所有最好的
Gary
好,宣告原子的問題是你是否明確一個單獨的一個聲明默認的屬性。前者將取決於您的代碼的性質 - 是否可能存在有爭議的多線程訪問屬性?
關於後者,它主要是一個風格問題,但總的來說,我認爲你應該明確清晰的一面。確切地說,您的生活需要幾秒鐘才能輸入這些額外的幾個按鍵?
非原子生成的代碼更少,速度稍快。我確實同意它非常詳細。
如果您的應用程序可以使用多個線程,你會很高興已經把這些明確的限定詞,當你遇到莫名其妙的錯誤...
@property(nonatomic, assign) int myValue;
是不一樣的
@property int myValue;
的屬性的默認是原子(沒有明確的關鍵字atomic
)。所以第二個例子是一個原子屬性。對於原始類型的屬性,我不知道是否發生任何鎖定,但可能會引入內存寫入障礙(即,setter將強制將值寫回主存儲器,而不是寫入緩存)。因此原子性質比非原子性質慢得多。然而,作爲該計劃總執行時間的一小部分,它們仍可能佔很小的比例。直到你剖析你的代碼,你纔會知道。