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

2021-07-04 10:06:27 字數 1385 閱讀 7199

1、只要呼叫了alloc,就必須有release(autorelease)

2、set方法的**規範

//(1)基本資料型別:直接複製

-(void)setage:(int)age

//(2)oc物件型別

-(void)setcar:(car *)car

}

3、dealloc方法的**規範

//一定要[super dealloc],而且要放到最後

//對self(當前)所擁有的的其他物件做一次release操作

-(void)dealloc

retain(strong):對物件release舊值,retain新值(適用於oc物件型別)

assign(week):直接賦值(預設,適用於非oc物件型別)

copy:release舊值,copy新值

下面的例子進一步詳解了手動記憶體管理:

#import

#import "engine.h"

@inte***ce

car : nsobject

-(void)seteng:(engine *)eng;

-(engine *)eng;

-(void)run;

@end

#import "car.h"

@implementation

car//第一次

//-(void)seteng:(engine *)eng

//第二次

//-(void)seteng:(engine *)eng

//第三次

//-(void)seteng:(engine *)eng

//

//}//簡便寫法

-(void)seteng:(engine *)eng

-(engine *)eng

-(void)run

- (void)dealloc

@end

#import

@inte***ce

engine : nsobject

@end

#import "engine.h"

@implementation

engine

- (void)dealloc

@end

#import

#import "test.h"

#import "car.h"

int main(int argc, const

char * argv)

return

0;}

-15.8.7

-15.8.12

ios學習記錄 day20 OC 5

記憶體管理 閃退 1.記憶體洩露 不管理記憶體 2.記憶體過度釋放 oc 1.手動管理記憶體 mrc 弊端 容易過度釋放 2.自動管理記憶體 arc 弊端 錯誤都出在底層 不易查詢 垃圾 只限於mac應用程式 手動管理記憶體 引用計數增加 引用計數減少 alloc 開闢記憶體 0 1 retain ...

IOS開發 OC語言 概述

1 跟 include一樣,拷貝檔案的內容 2 可以自動防止檔案的內容被重複拷貝 nsobjcruntime.h中有nslog函式的宣告 1 主標頭檔案 最主要的標頭檔案,名字一般跟框架名稱一樣,包含了框架中的所有其他標頭檔案 2 foundation框架的主頭檔名稱就是foundation.h 3...

IOS開發 OC語言 分類

分類的作用 在不改變原來類內容的基礎上,可以為類增加一些方法 使用注意 1.分類只能增加方法,不能增加成員變數 2.分類方法實現中可以訪問原來類中宣告的成員變數 3.分類可以重新實現原來類中的方法,但是會覆蓋掉原來的方法,會導致原來的方法沒法再使用 4.方法呼叫的優先順序 分類 最後參與編譯的分類優...