成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Objective-C學習筆記 UIView內存釋放問題

移動開發 iOS
本文介紹的是Objective-C學習筆記 UIView內存釋放問題,主要講述了對內存的相關操作,具體內容我們來看本文詳解。

Objective-C學習筆記 UIView內存釋放問題是本文要介紹的內容,UIView內存釋放,之前一直以為把alloc的UIView對象,最后release掉或者removeFromSuperview掉就可以了。但是最近項目中出現了當釋放父試圖時,子視圖內存不釋放,最后導致內存泄漏,報內存警告最后程序崩潰。

造成UIview內存泄漏的原因是,當釋放UIView時,其子視圖中有占有的資源沒有釋放掉,如動畫沒有結束,最后造成內存不會釋放掉。

下面的代碼能夠很好的展示上述過程:

在主視圖上添加一個AnimationView,然后在AnimationView中在添加一個視圖:

  1. Animations *animationView=[[Animations alloc] initWithFrame:CGRectMake(10, 10, 270, 400)];   
  2.         [animationView setBackgroundColor:[UIColor yellowColor]];   
  3.         [self addSubview:animationView];   
  4.         [animationView release]; 

在Animations視圖中添加一個遞歸的動畫:

  1. - (void)wobble {   
  2.     NSLog(@">>>>>>>>>>>>>>>>>>");   
  3.         CGFloat rotation = (kWobbleRadians * M_PI * 2) / 360.0;   
  4.         CGAffineTransform wobbleLeft = CGAffineTransformMakeRotation(rotation);   
  5.         [UIView beginAnimations:nil context:nil];   
  6.         [UIView setAnimationDuration:kWobbleTime];   
  7.         [UIView setAnimationDelegate:self];   
  8.         self.transform = wobbleLeft;   
  9.    //     if (!releaseFlage) {   
  10.             [UIView setAnimationDidStopSelector:@selector(wobble)];   
  11.    //     }   
  12.         [UIView setAnimationRepeatAutoreverses:NO];   
  13.         [UIView commitAnimations];   

由于當前類每隔3秒鐘要執行一次遞歸,所以當在主視圖中移除AnimationView時,由于AnimationView的子視圖動畫是一個遞歸沒有結束,所以當前這個視圖樹不會釋放,只是不再界面上顯示,最終造成內存泄漏。解決辦法如下,當AnimationView想要移除時,需要將其子視圖上的動畫移除掉。我的做法是在AnimationView中添加下面方法即可:

  1. - (void)willRemoveSubview:(UIView *)subview   
  2. {   
  3.     Animations *downBookView=(Animations *)subview;   
  4.     downBookView.releaseFlage=TRUE;   

這樣內存視圖樹就會跟著釋放掉內存,從系統中徹底釋放掉了。

小結:Objective-C學習筆記 UIView內存釋放問題的內容介紹完了,希望本文對你有所幫助。

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-04 14:58:37

Objective-C Cocoa NSString

2013-08-21 14:57:42

objective-c問題

2011-08-05 14:03:39

Objective-C 對象 模板

2011-08-16 10:23:04

Objective-CNSAutoreleaXcode常用鍵

2011-05-11 15:45:50

內存管理Objective-C

2011-08-15 16:09:44

Cocoa對象Objective-C

2011-07-27 16:36:03

iphone Objective- 靜態庫

2011-07-20 17:04:43

Objective-C 內存 內存泄露

2011-07-18 17:14:16

Objective-C 內存 Cocoa

2011-05-11 14:06:49

Objective-C

2011-07-21 09:32:07

Objective-C 內存 Autoreleas

2011-07-21 10:10:42

Objective-C 內存 Autoreleas

2011-08-04 10:38:17

Objective-C 預處理程序

2011-08-04 11:04:14

Objective-C 面向對象 繼承

2011-07-25 10:03:06

Objective-C 委托

2011-07-29 16:08:31

Objective-C 內存

2011-08-18 13:28:35

Objective-C內存

2011-08-04 13:43:30

Objective-C 私有變量

2011-07-25 14:27:10

Objective-C 協議 函數

2011-08-01 11:37:41

iPhone Objective- 內存
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲在线一区二区 | 亚洲免费观看视频网站 | 亚洲成人av | 岛国精品| 欧美日韩在线一区二区 | 成人在线视频免费观看 | 99精品国产在热久久 | 日韩精品免费视频 | 日韩欧美一区在线 | 免费久久久久久 | 久久精品国产一区 | 亚洲精品视频免费观看 | 久久久一区二区三区四区 | 久久久久国产精品一区二区 | 91在线视频免费观看 | 成年人精品视频 | 一级a性色生活片久久毛片波多野 | h漫在线观看 | 久久1区 | 欧美精品tv | 国产精品久久久久无码av | 91精品久久久久久久久久入口 | 国产 欧美 日韩 一区 | a级片网站 | 欧美性区 | 最新中文字幕在线 | 国产成人精品免高潮在线观看 | 中文字幕在线精品 | 日韩欧美国产一区二区 | 91久久国产| 电影91久久久 | 一区二区三区 在线 | 中文字幕一区二区三区乱码在线 | 国产在线h | 国产福利在线看 | 在线视频成人 | 美女视频黄的免费 | 日韩免费视频一区二区 | 亚洲视频在线看 | 波多野结衣二区 | 久久精品av |