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

首頁 > 系統 > iOS > 正文

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

2019-10-21 18:46:39
字體:
來源:轉載
供稿:網友

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];}

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

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

 

注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文化| 福贡县| 屯昌县| 海林市| 昌都县| 海盐县| 承德县| 雷山县| 永吉县| 钟山县| 崇礼县| 邵武市| 县级市| 政和县| 鱼台县| 炎陵县| 昌江| 友谊县| 锦州市| 兖州市| 青阳县| 垣曲县| 景谷| 泸西县| 陇南市| 台中市| 岑巩县| 古田县| 兴宁市| 哈尔滨市| 高邑县| 揭东县| 西林县| 娱乐| 包头市| 洞头县| 芷江| 札达县| 永安市| 陵川县| 科尔|