属性项目的定义(property)[ZT]
生活随笔
收集整理的這篇文章主要介紹了
属性项目的定义(property)[ZT]
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文地址:屬性項目的定義(property)
@property (copy, nonatomic) NSString *title;
什么是assign,copy,retain之間的區別?
- assign: 簡單賦值,不更改索引計數(Reference Counting)。
- copy: 建立一個索引計數為1的對象,然后釋放舊對象
- retain:釋放舊的對象,將舊對象的值賦予輸入對象,再提高輸入對象的索引計數為1
retain的實際語法為:
- (void)setName:(NSString *)newName {if (name != newName) {[name release];name = [newName retain];// name’s retain count has been bumped up by 1} }說了那么麻煩,其實接下來的話最重要:
?如果你不懂怎么使用他們,那么就這樣 ->
- 使用assign: 對基礎數據類型 (NSInteger,CGFloat)和C數據類型(int, float, double, char, 等等)
- 使用copy: 對NSString
- 使用retain: 對其他NSObject和其子類
nonatomic關鍵字:
atomic是Objc使用的一種線程保護技術,基本上來講,是防止在寫未完成的時候被另外一個線程讀取,造成數據錯誤。而這種機制是耗費系統資源的,所以在iPhone這種小型設備上,如果沒有使用多線程間的通訊編程,那么nonatomic是一個非常好的選擇。
總結
以上是生活随笔為你收集整理的属性项目的定义(property)[ZT]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 递归上传文件和文件夹至SharePoin
- 下一篇: 开的什么源?——第三篇:草根创业