原子屬性和非原子屬性有什么區(qū)別?做什么atomic和nonatomic財產(chǎn)申報中的意思?@property(nonatomic, retain) UITextField *userName;@property(atomic, retain) UITextField *userName;@property(retain) UITextField *userName;這三者在運(yùn)作上有何分別?
3 回答

慕斯王
TA貢獻(xiàn)1864條經(jīng)驗 獲得超2個贊
//@property(nonatomic, retain) UITextField *userName;//Generates roughly- (UITextField *) userName { return userName;}- (void) setUserName:(UITextField *)userName_ { [userName_ retain]; [userName release]; userName = userName_;}
//@property(retain) UITextField *userName;//Generates roughly- (UITextField *) userName { UITextField *retval = nil; @synchronized(self) { retval = [[userName retain] autorelease]; } return retval;}- (void) setUserName:(UITextField *)userName_ { @synchronized(self) { [userName_ retain]; [userName release]; userName = userName_; }}

眼眸繁星
TA貢獻(xiàn)1873條經(jīng)驗 獲得超9個贊
原子
是默認(rèn)行為。 將確保當(dāng)前進(jìn)程在另一個進(jìn)程訪問變量之前由cpu完成。 不是快速的,因為它確保了整個過程的完成。
非原子
不是默認(rèn)行為。 更快(用于合成代碼,也就是使用@Property和@合成創(chuàng)建的變量) 非線程安全 當(dāng)兩個不同的進(jìn)程同時訪問同一個變量時,可能會導(dǎo)致意外行為。
- 3 回答
- 0 關(guān)注
- 880 瀏覽
添加回答
舉報
0/150
提交
取消