91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【Objective-C】OC中的Dealloc方法詳解

發布時間:2020-07-31 12:57:25 來源:網絡 閱讀:488 作者:jiangqq900826 欄目:移動開發

今天來學習一下Dealloc方法的使用。

它的作用是,當對象的引用計數為0,系統會自動調用dealloc方法,回收內存。它的一般寫法:

1:-(void)dealloc{

    [super dealloc]; }
2:-(void)dealloc{ 
    NSLog(@"laptop dead");     [_cpu release];     [super dealloc]; }
(一):為什么需要調用父類的dealloc方法?
     子類的某些對象實例是繼承自父類的。因此,我們需要調用父類的dealloc方法,來釋放父類
擁有的這些對象。
(二):調用的順序
     一般說調用的順序是,當子類的對象釋放完時,然后再釋放父類的所擁有的實例。這一點與調用初始化方法,
正好相反
下面使用一個例子來演示一下:
1:父類Vehicle.h
#import <Foundation/Foundation.h>  @interface Vehicle : NSObject {     @private     NSString *_name; } -(id)initWithName:(NSString *)name; @end
2:父類Vehicle.m
#import "Vehicle.h"
@implementation Vehicle
-(id)initWithName:(NSString *)name{     self=[super init];     if(self){         _name=[name copy];     }     return self; } -(void)dealloc{     NSLog(@"vehicle dead");     [_name release];     [super dealloc]; } @end
3:子類Car.h
#import <Foundation/Foundation.h> #import "Vehicle.h" @class Engine; @interface Car : Vehicle {     Engine *_engine; } -(void)setEngine:(Engine *)engine; @end 
4:子類Car.m
#import "Car.h"
@implementation Car
-(void)setEngine:(Engine *)engine{     if(_engine!=engine){         [_engine release];         _engine=[engine retain];     } }  -(Engine *)engint{     return  _engine; } -(void)dealloc{     NSLog(@"Car dead");     [_engine release];     [super dealloc]; } @end 
5:測試main.m代碼
#import <Foundation/Foundation.h> #import "Engine.h" #import "Car.h" int main(int argc, const char * argv[]) {      @autoreleasepool {         NSString *name=[[NSString alloc]initWithFormat:@"audi"];         Car *car=[[Car alloc]initWithName:name];         [name release];                  Engine *v6=[[Engine alloc]init];         [car setEngine:v6];         [v6 release];         //do something         [car release];     }     return 0; }
運行截圖
【Objective-C】OC中的Dealloc方法詳解 
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

许昌市| 同德县| 丘北县| 大庆市| 嵊州市| 南川市| 措勤县| 来宾市| 张家港市| 乳山市| 霍州市| 闻喜县| 嘉峪关市| 梧州市| 扎赉特旗| 雅安市| 贵定县| 建瓯市| 磐石市| 贡嘎县| 阳谷县| 昌平区| 安丘市| 左云县| 龙州县| 榆中县| 西林县| 云阳县| 同仁县| 酒泉市| 新宾| 健康| 苍山县| 东阿县| 宁远县| 钟祥市| 松溪县| 德兴市| 饶河县| 佛教| 桑植县|