日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NSTimer注意内存泄露(真该死)

發(fā)布時間:2023/12/2 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NSTimer注意内存泄露(真该死) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  

NSTimer可以用來執(zhí)行一些定時任務(wù),比較常用的方法就是:

+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)yesOrNo;

?

可是,仔細看官方文檔中對于參數(shù)target的說明,可以看到這樣一段:

target

The object to which to send the message specified by?aSelector when the timer fires. The timer maintains a strong reference to this object until it (the timer) is invalidated.

也就是說,NSTimer會強引用target.?

那么如果我們按照通常的用法,在view controller中創(chuàng)建一個timer

self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerFireMethod:) userInfo:nil repeats:YES];

就會帶來循環(huán)引用,viewController的dealloc()方法不會正確調(diào)用,從而導(dǎo)致內(nèi)存泄漏。

?

所以正確的做法,如果是在view controller中持有了NSTimer的對象,那么需要確保在view controller關(guān)閉之前,執(zhí)行如下方法:

[timer invalidate];

有些人推薦是在viewDidDisappear的時候調(diào)用這個方法,但在部分業(yè)務(wù)邏輯中,跳轉(zhuǎn)到下一個頁面的時候并不是一定需要停止這個定時器的;所以需要根據(jù)自己的需要來調(diào)整。

?

另外,多說一句,看到有些代碼中使用timer的時候,定義的selector都沒有定義參數(shù)的,然后根據(jù)官方文檔,

The selector should have the following signature:?timerFireMethod: (including a colon to indicate that the method takes an argument). The timer passes itself as the argument, thus the method would adopt the following pattern:

- (void)timerFireMethod:(NSTimer *)timer;

?

也就是說,這個selelctor實際上是需要帶上timer作為參數(shù)的。

?

聯(lián)想到上一篇談到NSNotificationCenter 的文章,

- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;

?

里面對于selector其實也說得很清楚,也是需要帶上一個參數(shù)而且只能帶上一個NSNotification的對象作為參數(shù)的.

notificationSelector

Selector that specifies the message the receiver sends?notificationObserver to notify it of the notification posting. The method specified by?notificationSelector must have one and only one argument (an instance of?NSNotification).

The End.

原文:http://www.cnblogs.com/agger0207/p/4419348.html

NSTimer 會強持有所在的 target

?

轉(zhuǎn)載于:https://www.cnblogs.com/benbenzhu/p/4832651.html

總結(jié)

以上是生活随笔為你收集整理的NSTimer注意内存泄露(真该死)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产不卡精品视频 | 精品在线观看免费 | 91精品免费在线观看 | 国精产品乱码一区一区三区四区 | 自拍偷拍另类 | 艳妇乳肉豪妇荡乳av | 欧美精品播放 | a级片在线播放 | 精品综合网| 另类一区二区三区 | 国产欧美第一页 | av爱爱| 无码人妻aⅴ一区二区三区 国产高清一区二区三区四区 | 爱就操| 黄色高清无遮挡 | 日韩精品视频在线观看免费 | 亚洲中文字幕无码av永久 | 91大奶| 一区二区毛片 | 欧美一区二区公司 | 久久美利坚 | 日韩精品播放 | 四虎永久在线视频 | 国产精品免费无遮挡无码永久视频 | 亚洲GV成人无码久久精品 | 国产精品国产一区二区 | 波多野42部无码喷潮在线 | 欧美一级啪啪 | 国产一区二区精彩视频 | 91久久爽久久爽爽久久片 | 精产国品一二三产品蜜桃 | 欧美三级手机在线观看 | 中国男人操女人 | 狠狠狠狠狠狠干 | 蜜桃又黄又粗又爽av免 | 久草免费资源 | 欧美日韩亚洲精品一区二区 | 日本成人激情视频 | 先锋影音av资源站 | 97狠狠操 | 99爱在线 | 中文字幕第一页在线视频 | 日本www在线 | 亚洲精品天天 | 色婷婷综合成人av | 在线观看视频 | 玖玖玖国产精品 | 国产精品无码人妻一区二区在线 | 久草资源在线视频 | 色导航 | 日日草夜夜操 | 色综合91| 国产免费激情视频 | 在线观看一二区 | 丰满人妻一区二区三区在线 | 香蕉久久夜色 | 狠狠精品干练久久久无码中文字幕 | 欧美视频你懂的 | 精品不卡一区二区 | 中日黄色片 | 中文乱码人妻一区二区三区视频 | 激情亚洲色图 | 中文字幕乱码亚洲无线三区 | 久久公开视频 | 国产高清成人久久 | 波多野一区二区三区 | 人人妻人人藻人人爽欧美一区 | 国模人体一区二区 | 国产午夜一区二区 | 亚洲欧美日韩第一页 | 亚洲人成色777777精品音频 | 99精品一区二区 | 中文人妻熟女乱又乱精品 | 国产成人无码一区二区在线观看 | 天天摸天天爽 | 高清乱码毛片入口 | 兔费看少妇性l交大片免费 日韩高清不卡 | 亚洲AV不卡无码一区二区三区 | 97插插插| 欧美黑人多人双交 | 操操影视 | 久久久久成人精品免费播放动漫 | 欧美一区二区三区公司 | 日韩欧美一区二区在线 | 91精品国产91久久久久福利 | 天天干天天色天天射 | xxxx69视频| 欧美暧暧视频 | 国产网站黄色 | 久久超碰精品 | 黄色小视屏| 天天色天天操天天射 | 9i看片成人免费看片 | 日本免费不卡视频 | 怡红院成人在线 | 久久精品国产99国产精品 | 日日夜夜91| 国产精品300页 | 午夜福利电影一区二区 |