IOS property引數詳解

2021-06-26 21:49:14 字數 568 閱讀 5917

例子:nsstring* house = [[nsstring alloc] initwithstring:"尼瑪的房子"];

以上**會產生:

2、在棧上分配一段記憶體來儲存house。位址為:0xaaaa,內容為0x1111

1、assign:nsstring* myhouse = [house assign];

此時myhouse和house完全角同,位址都是0xaaaa,內容為

0x1111、指向堆上的值

myhouse就好比是house的別名,

2、retain:nsstring* myhouse = [house assign];

此時的myhouse的位址不為0xaaaa了   可能為0xaabb 但是內容還是0x1111,所以兩個都可以管理「尼瑪的房子」

3、copy:copy 的情況就是在堆上又開闢了一段記憶體,記憶體什麼的都變化了。

簡單的說:

1、assign好比是引用,別名!

2、retain就好比是在棧中的位址不同,但是內容相同。

3、copy:深拷貝,堆的位置不同,棧的位置也不同。



IOS property 引數分類

property 引數分為4類 property 引數分為4類 1.與set方法記憶體管理相關引數 retain 要生成符合記憶體管理原則的set方法 應用與物件型別 assign 直接賦值,物件型別,基本資料型別 copy 後面講解 2.多執行緒相關 nonatomic 不生成多執行緒線管 使用這...

iOS property引數分析

因為現在xcode都是預設使用arc所以現在分析主要是以arc為主。第一組 記憶體管理特性 retain assign copy strong weak unsafe unretained autoreleasing 第二組 讀 寫特性 readwrite readonly 第三組 多執行緒特性 n...

iOS property 屬性相關的總結

讀寫屬性 readwrite readonly setter語意 assign retain copy 原子性 多執行緒管理 atomic nonatomic 強弱引用 strong weak 強指標 strong 弱指標 weak arc管理記憶體是用assign還是用weak?assign 如果...