第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

什么情況,我發(fā)現(xiàn)Demo.m中得dealloc方法沒有執(zhí)行哈?

什么情況,我發(fā)現(xiàn)Demo.m中得dealloc方法沒有執(zhí)行哈?

iOS
拉莫斯之舞 2023-04-17 22:18:40
有時候會用到一個自定義的類用來存儲請求網(wǎng)絡(luò)得到得數(shù)據(jù),假如類定義如下:Demo.h@interface Demo : NSObject@property(nonatomic,retain) NSString *userId,*name;@endDemo.m@implementation Demo@synthesize userId,name; -(void)dealloc {    NSLog(@"Demo dealloc");     [userId release];     [name release];     [super dealloc]; }@end在一個UIViewController的viewDidLoad方法中執(zhí)行如下代碼    NSMutableArray *datas=[[NSMutableArray alloc]init];     for(int i=0;i<5;i++){        Demo *demo=[[Demo alloc]init];         [demo setName:[NSString stringWithFormat:@"name--%d",i]];         [demo setUserId:[NSString stringWithFormat:@"userId--%d",i]];         [datas addObject:demo];         [demo release];     }發(fā)現(xiàn)Demo.m中得dealloc方法沒有執(zhí)行,那么在這個類中有retain修飾的userId和name是不是沒有被釋放,進而會產(chǎn)生內(nèi)存泄漏得可能?
查看完整描述

2 回答

?
繁星淼淼

TA貢獻1775條經(jīng)驗 獲得超11個贊

release只是減少了對象的引用計數(shù),只有當對象的引用計數(shù)減少到0的時候,dealloc才會被調(diào)用。

你在release之前就把它塞到datas里去了,所以該對象的引用計數(shù)還是1。


查看完整回答
反對 回復 2023-04-20
?
陪伴而非守候

TA貢獻1757條經(jīng)驗 獲得超8個贊

因為[datas addObject:demo];后
datas retain了你的demo。
等你把datas清空時,就會執(zhí)行dealloc了。


查看完整回答
反對 回復 2023-04-20
  • 2 回答
  • 0 關(guān)注
  • 170 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號