ARC基本原理

2022-05-29 00:48:23 字數 1682 閱讀 4120

基本簡介

arc是automatic reference counting(自動引用計數器)的簡稱。

arc是ios5.0引入的新特性,完全消除手動管理記憶體的繁瑣,編譯器會自動在適合的**裡面插入適當的retain,release,autorelease的語句。我們不要再擔心記憶體管理,因為編譯器幫我們做了這一切。

arc是編譯器的特性,並非執行時的特性,也不是其他程式語言中的垃圾**器。因此自動管理和手動管理記憶體其實一樣的,但是自動管理更加快速,因為編譯器執行某些優化。

基本原理

arc的規則就是只要物件沒有強指標引用,就會被釋放掉,換而言之 只要還有乙個強引用指標變數指向物件,那麼這個物件就會存在記憶體中。弱指標指向的物件,會被自動變成空指標(nil指標),從而不會引發野指標錯誤。

基本使用

arc設定如下

arc模式下 retain ,release,retaincount 是不能夠呼叫的。

例子1

7f6acd2d-ded5-497c-9acf-912b1c3081f0.png

例子2dealloc可以重寫,但是不能用[super dealloc],編譯器會報錯。

例子3

例子4

例子5__weak弱指標

注意使用事項

1.迴圈引用

解決辦法:一段用強引用,一段用弱引用。outlet的控制項屬性都是weak修飾,因為他們已經被父控制項強引用。

2.arc只對oc物件的進行記憶體管理,對於corefundation的api使用,他的物件所有權沒有移交給oc物件管理,都需要手動去釋放。

**:

mysql的基本原理 Mysql 基本原理

mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...

8 2 1 基本原理

乙個舞台動畫物件在包含許多舞台資訊 出現在何處,佔多大面積,處在什麼角度,是否可見 這些資訊分別儲存在動畫物件的屬性中。在 中讀取這些屬性可以了解物件的位置 大小 角度等狀態資訊 修改這些屬性可以改變物件的位置 大小 角度等狀態。如果從資料的角度去理解,動畫就是在固定時間間隔點不斷修改動畫物件某項屬...

Csocket基本原理

我通過幾個採用 csocket 類編寫並基於 client server 客戶端 服務端 的網路聊天和傳輸檔案的程式 在除錯這些程式的過程中,追蹤深入至 csocket 類核心原始碼 sockcore.cpp 對於csocket 類的執行機制可謂是一覽無遺,並且對於阻塞和非阻塞方式下的 socket...