ios學習記錄 day20 OC 5

2022-06-15 07:00:10 字數 959 閱讀 4249

記憶體管理

閃退:1.記憶體洩露(不管理記憶體)

2.記憶體過度釋放

oc:1.手動管理記憶體(mrc)//弊端 容易過度釋放

2.自動管理記憶體(arc)//弊端 錯誤都出在底層 不易查詢

垃圾**//只限於mac應用程式

手動管理記憶體:

引用計數增加:                                    引用計數減少:

+alloc//開闢記憶體     0 -> 1            |    

-retain                  +1                 |     -release    -1

-copy(只有字串可以用)原來的不變 |    -autorelease//自動 延遲釋放 在某個地方控制

新開闢記憶體 0 -> 1  |

記憶體管理:

//1.記憶體的所有權:只有對記憶體有所有權的指標,才能夠release 改變引用計數

//alloc retain copy 都能使物件獲得記憶體的所有權

//release autorelease 都能使物件放棄記憶體的所有權

//2.有建立就有**,有+1就有-1

//3.引用計數的概念:有多少個物件對記憶體有所有權

//4.在乙個方法/類中,記憶體的引用計數要保持平衡(+多少 -多少)     

方法 在物件的引用計數為0時,系統強制呼叫,用於**記憶體

//6.屬性的記憶體管理 物件型別的屬性,需要在dealloc中釋放一次

//7.自動釋放池 負責釋放池子範圍內所有被標記為autorelease的物件 @autoreleasepool{}

//如果是nsautoreleasepool物件建立的池子,使用drain可以清空池子裡的所有物件

//8.構造器的記憶體管理 在返回這個物件的時候,使用autorelease自動釋放池:

@autoreleasepool{

iOS開發 Day20 OC 手動記憶體管理

1 只要呼叫了alloc,就必須有release autorelease 2 set方法的 規範 1 基本資料型別 直接複製 void setage int age 2 oc物件型別 void setcar car car 3 dealloc方法的 規範 一定要 super dealloc 而且要放...

ios學習記錄 day3

1.switch case 順序向下執行 2.default的作用 3.break的特性 會12345也要會54321 54321要從下往上想 不用break的時候 int a 0,b 0,result 0 char c 0 scanf d c d a,c,b switch c printf res...

ios學習記錄 day24 UI 3 複習

1.屬性的初始化 的時候 即賦值的時候 必須用self.其它地方可以用 在自定義的dealloc中要release 2.111 2x.png 4 4s用的圖的名 用的時候直接寫111.png就行 required background modes item0 後台可以執行的情況 9種 4.向手機傳送...