[問題] iPhoneSDK: subview release的問題
最近在看iphoneSDK的sample code
其中有一個是水平儀的sample
裡面有個LevelView的class
在LevelView.h裡有幾個UIImageView
UIImageView *bubbleView;
UIImageView *upDownArrowsView;
UIImageView *downUpArrowsView;
在LevelView.m裡,這些UIImageView被初始化,如:
bubbleView = [[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"bubble.png"]];
(bubbleView retainCount = 1)
然後被加到LevelView裡
[self addSubview:bubbleView];
(bubbleView retainCount = 2)
最後在dealloc()裡,bubbleView被release
[bubbleView release];
那這時bubbleView的retainCount是1,對嗎?
那怎麼變0呢?
是在[super dealloc]時,LevelView的super class(UIView)把它清掉的嗎?
另外,有些UIImageView沒有出現在LevelView.h
而是直接在.m宣告,如:
UIImageView *levelFrontView = [[UIImageView alloc] initWithImage:
[UIImage imageNamed:@"levelBackground.png"]];
[self addSubview:levelFrontView];
[levelFrontView release];
它被加到LevelView後,就把它release了
(我想也是,因為在dealloc()裡沒法release它 )
想請教的是
剛剛前面那一個bubbleView,為什麼不在addSubview之後就release它
而要等到dealloc才release呢?
這兩者間有什麼差別?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.120.62
推
01/04 12:57, , 1F
01/04 12:57, 1F
→
01/04 18:07, , 2F
01/04 18:07, 2F
→
01/04 19:29, , 3F
01/04 19:29, 3F
→
01/04 22:29, , 4F
01/04 22:29, 4F
→
01/04 22:29, , 5F
01/04 22:29, 5F
→
01/04 22:30, , 6F
01/04 22:30, 6F
→
01/04 22:30, , 7F
01/04 22:30, 7F
→
01/04 23:18, , 8F
01/04 23:18, 8F
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章