日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Objective-C 内存管理机制

發布時間:2024/4/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Objective-C 内存管理机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么要進行內存管理? 由于移動設備的內存極其有限,所以每個APP所占的內存也是有限制的,當app所占用的內存較多時,系統就會發出內存警告,這時需要回收一些不需要再繼續使用的內存空間,比如回收一些不再使用的對象和變量等。 OC內存管理方式? OC的內存管理不同于其他高級語言如C#、Java都是通過垃圾回收機制,ObjC內存管理采用引用計數機制。 管理范圍:任何繼承NSObject的對象,對其他的基本數據類型無效。 什么是引用計數? 引用計數機制:在ObjC中每個對象內部都有一個與之對應的整數(retainCount),叫“引用計數器”,當一個對象在創建之后它的引用計數器為1,當調用這個對象的alloc、retain、new、copy方法之后引用計數器自動在原來的基礎上加1(ObjC中調用一個對象的方法就是給這個對象發送一個消息),當調用這個對象的release方法之后它的引用計數器減1,如果一個對象的引用計數器為0,則系統會自動調用這個對象的dealloc方法來銷毀這個對象。 什么是自動引用技術? 自動引用計數:指內存管理中對引用采取自動計數的技術。蘋果官方說明如下:在Objective-C中采取Automatic Refrence Counting(ARC)機制,讓編譯器來進行內存管理。“在LLVM編譯器中設置ARC為有效狀態,就無需再次鍵入retain或者release代碼”換言之,滿足以下條件無需手動輸入retain和release代碼了。 1.使用Xcode4.2以上版本; 2.使用LLVM編譯器3.0或者以上版本; 3.編譯器選項中設置ARC為有效。 滿足以上條件,編譯器將自動管理內存。       注?若需要在Xcode中關閉ARC:項目屬性—Build Settings--搜索“garbage”找到Objective-C Automatic Reference Counting設置為No即可。 內存管理原則? 原則1  

只要還有人在使用某個對象,那么這個對象就不會被回收;

只要你想使用這個對象,那么就應該讓這個對象的引用計數器+1;

當你不想使用這個對象時,應該讓對象的引用計數器-1;

原則2  誰創建,誰release

(1)如果你通過alloc,new,copy來創建了一個對象,那么你就必須調用release或者autorelease方法

(2)不是你創建的就不用你去負責

原則3  誰retain,誰release

只要你調用了retain,無論這個對象時如何生成的,你都要調用release

總結:有始有終,有加就應該有減。曾經讓某個對象計數器加1,就應該讓其在最后-1.

?

?

轉載于:https://www.cnblogs.com/echo-imax/p/4576757.html

總結

以上是生活随笔為你收集整理的Objective-C 内存管理机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。