1、是否要生成set方法(若為唯讀屬性,則不生成)
readonly:唯讀,只會生成getter的宣告與實現
readwrite:
預設,同時生成setter與getter的宣告與實現
2、原子屬性(多執行緒,加鎖)
nonatomic
:高效能,沒有加鎖,執行緒不安全
atomic:低效能,加鎖,執行緒安全,預設
3、mrc下:
assign:set方法中,直接賦值,預設
copy:set方法中,先release原值,再copy新傳入的值
retain:set方法中,使用retain,獲得實參的所有權,引用計數發生變化。首先release原來的值,再retain新值
arc下:
一般來說arc模式下的property變數修飾詞為strong、weak,相當於非arc模式下的retain、assign,
strong :代替retain,預設
weak:代替assign,但是比assign多乙個功能,指標指向的位址被釋放之後,指標本身也會自動被釋放。
eg:
//person類
#import @inte***ce person : nsobject
@property (nonatomic) int _age;
@end
再person類有乙個成員變數age,通過@property自動生成set get方法,一般情況下,我們使用 nonatomic。這樣在main函式中我們就可以通過物件訪問其屬性
#import #import "person.h"
#import "dog.h"
int main(int argc, const char * argv)
return 0;
}
注:在set、get方法中我們需要格外注意其物件的記憶體管理,特別是兩個物件相互引用的時候,一方的@property引數應設為strong(retain) 一方應設為weak(assign)。
黑馬程式設計師 OC學習日記 OC基礎知識
一 oc簡介 1.c語言基礎上,增加了一層最小的物件導向語法 2.完全相容c語言 3.可以在oc 中混入c語言 甚至是c 4.可以使用oc 開發mac os x平台和ios平台的應用程式 二 oc語法預覽 1.關鍵字 基本所有關鍵字都是以 開頭,如 inte ce implementation en...
黑馬程式設計師 學習日記 struct class
asp.net unity開發 net培訓 期待與您交流!定義乙個結構體 訪問修飾符 空格 struct 結構體名稱 結構體成員 成員可包括變數,方法。public struct person 這樣就定義了乙個結構體,那麼如何使用結構體。static void main string args 而結...
黑馬程式設計師 oc 特有語法2
一 分類 category 1.基本用途 person.h檔案 inte ce person nsobject int age property int age void test end person jj.h檔案 import person.h inte ce person jj void te...