拆箱裝箱 頁面跳轉 及記憶體管理 0905藍懿教育

來源:互聯網
上載者:User

標籤:

拆箱裝箱

 數組中只能裝入對象,而很多時候我們需要把類似Int 或者結構體這種裝入此時我們需要進行拆裝基本思想是 把類似int還有結構體 轉換成相對應的對象 然後加入數組 ,匯出時 要從對象型變成對應的int或者結構體類@property NSmutableArray *ages;self.ages=[NSmutableArray  Array]; int x=1;NSnumber *objectnumber=x;[self.ages addobject:objectnumber];NSnumber *newobjectnumer=self.ages[0];int newx=[newonjectnumer intvalue];     頁面跳轉第二章頁面類為SecondViewController靜態頁面一般用storyboard建立 注意要喝VierController進行關聯此時  SecondViewController *l1=[self.stroryboard instantiatedViewControllerWithIdentifier:@"此處填寫storyboard中的ID"];[self presentViewController:l1 animated:YES completion:nil]; 在第二章頁面中回跳[self dismissViewController:YES animated:nil];      記憶體管理初步

MRC手動記憶體管理中三個方法

retain 導致記憶體計數+1

release 導致記憶體計數-1

copy 複製出來一個新的對象 和之前對象的資料可能一致 但並不是同一個對象 所以記憶體計數+1

autorelease: 自動釋放  當變數出了自動釋放池(autoreleasepool)之後會自動釋放

自動釋放池在項目中有很多看不見

 

 

在ARC中;

retain(strong)  先把原先的值release  再把新匯入的值retain

assign (weak)  一般基礎資料型別 (Elementary Data Type)用 int float 記憶體計數不變

readonly 會讓屬性只產生get方法 無set方法;

self.names=name   在readonly下會報錯  在左邊調用的set方法

NSSmutablearray *l1=self.names  self.names在右邊調用的就是get方法

 

和多線程相關

nonatomic 非原子性操作  不安全 效率高 非多線程都用

atomic 原子性操作   線程是安全的 效率低 只有多線程訪問資料的時候才有可能會使用此關鍵字

 

建立屬性時間要寫

@property(nonatomic,strong)NSMutablearray *friends;

@property(nonatomic)int *age;

字串特例 要寫copy型

@property(nonatomic,copy)NSString *name;  (如果是strong 指向同一個記憶體空間 把他賦值給別的變數的話

他們指向同一塊記憶體空間  如果改變最開始的nsstring 那麼之後的都會被改變  所以用copy)

 

屬性聲明時+1會在當前對象銷毀時 執行dealloc

 

self.enemys=[[NSmutableArray alloc]init]

self.enemys=[NSmutableArray array]; Factory 方法 多的就是在執行上面的alloc和init後 還添加了autorelease

 

 

總結

1.基礎資料型別 (Elementary Data Type) 用assign或者weak 但因為預設 所以不用寫

2.所有的物件類型  (除了NSString)都用strong或者retain

3.NSString 用copy

拆箱裝箱 頁面跳轉 及記憶體管理 0905藍懿教育

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.