国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

IOS 常見內存泄漏以及解決方案

2020-07-26 02:49:42
字體:
來源:轉載
供稿:網友

IOS 常見內存泄漏以及解決方案

整理了幾個內存泄漏的例子,由于轉載地址已經找不到了,在這里就不一一列出來了。
1 OC和CF轉化出現的內存警告

CFStringRef cfString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)picDataString,NULL,CFSTR(":/?#[]@!$&'()*+,;="),kCFStringEncodingUTF8);NSString *baseString = [NSString stringWithString:(NSString *)cfString];//釋放CFRelease(cfString);

2,循環參照

A有個屬性參照B,B有個屬性參照A,如果都是strong參照的話,兩個對象都無法釋放。

這種問題常發生于把delegate聲明為strong屬性了。

例,

@interface SampleViewController@property (nonatomic, strong) SampleClass *sampleClass;@end@interface SampleClass@property (nonatomic, strong) SampleViewController *delegate;@end

上例中,解決辦法是把SampleClass 的delegate屬性的strong改為assing即可。

3,死循環

如果某個ViewController中有無限循環,也會導致即使ViewController對應的view關掉了,ViewController也不能被釋放。

這種問題常發生于animation處理。

例,

比如,

CATransition *transition = [CATransition animation];transition.duration = 0.5;tansition.repeatCount = HUGE_VALL;[self.view.layer addAnimation:transition forKey:"myAnimation"];

上例中,animation重復次數設成HUGE_VALL,一個很大的數值,基本上等于無限循環了。

解決辦法是,在ViewController關掉的時候,停止這個animation。

-(void)viewWillDisappear:(BOOL)animated {  [self.view.layer removeAllAnimations];}

內存泄露的情況當然不止以上兩種。

感謝閱讀,希望能幫助到大家,謝謝大家對本站 的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泾川县| 营口市| 信宜市| 丰城市| 武胜县| 奎屯市| 搜索| 萨嘎县| 德庆县| 密山市| 牡丹江市| 个旧市| 邯郸市| 玛多县| 博野县| 玛纳斯县| 塘沽区| 兴义市| 衡阳市| 阿巴嘎旗| 清水河县| 大荔县| 潞城市| 辉南县| 常宁市| 西华县| 宜兰县| 扎赉特旗| 上蔡县| 洛阳市| 元氏县| 岐山县| 特克斯县| 邻水| 南雄市| 三门县| 昆明市| 曲周县| 东乡| 泰兴市| 余干县|