周六加班,真是個讓人悲傷的故事。今天改BUG的時候 發現了一個問題,我的控制器注冊了幾個監聽方法。當我pop掉這個控制器的時候,看似是從棧里移除掉了,然而當廣播發來的時候,依舊響應了監聽方法,這就很尷尬了。於是我跟蹤了一下代碼,發現當我pop之后根本沒有走到deinit方法(swift) 也就 ...
俗話說的好,前人栽樹后人乘涼,最近看了很多博文,不少博文提到了NSTimer的銷毀問題, 之前我都沒怎么注意,現在對照着文章一一實踐發現坑還真不少。下面是我讀到的幾篇博文分享給大家 嘯笑天的NSTimer 龐海礁的個人空間 汪海的實驗室 iOS 中的 NSTimer 這幾篇文章闡述了NSTimer的銷毀問題,並且都給出解決方案 這里就提供一個簡潔的方案,是由嘯笑天提供的 嘯笑天解決方案的gith ...
2016-10-10 14:41 2 7918 推薦指數:
周六加班,真是個讓人悲傷的故事。今天改BUG的時候 發現了一個問題,我的控制器注冊了幾個監聽方法。當我pop掉這個控制器的時候,看似是從棧里移除掉了,然而當廣播發來的時候,依舊響應了監聽方法,這就很尷尬了。於是我跟蹤了一下代碼,發現當我pop之后根本沒有走到deinit方法(swift) 也就 ...
在我們APP開發中經常有首次進入應用先進入引導頁或者登陸頁的情況,類似下圖所示 發現登陸以后更改window.rootViewController為應用首頁時,登陸頁沒有銷毀掉,通過圖層工具可以看到登陸頁依然在首頁的下面。 研究發現是因為上圖第一個控制器到第二個控制器是用模態過去 ...
在Windows時代,大家肯定對SendMessage,PostMessage,GetMessage有所了解,這些都是windows中的消息處理函數,那對應在ios中是什么呢,其實就是NSRunloop這個東西。在ios中,所有消息都會被添加到NSRunloop中,分為‘input source ...
一.iOS在切換根控制器時,如何銷毀之前的控制器?(切換rootViewController時注意的內存泄漏) 首先、在iOS的ARC機制下,任何對象,當沒有其他對象對他進行強引用時,都會被自動釋放。 而控制器的切換主要為兩種方式 push ...
解決方法 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated { // 如果有大於控制器 ...
iOS 設置tabbarItem的title的是通過 controller.tabBarItem.title = @"標題" iOS 設置導航欄控制器title通過 contoller.navigationItem.title = @"標題" self.titile = @"標題" 這種方法分別 ...
我們在做倒計時的時候,發現當你手指按着屏幕不放,拖動tableView滑動的時候,寫在cell上得倒計時停止倒計時,松開繼續倒計時。研究發現就是拖動tableView滑動時,NSTimer停止了。 這其實就是runloop的mode在做怪。runloop可以理解為cocoa下的一種消息循環機制 ...
當控制器ViewController跳轉進入控制器OneViewController中的時候開啟定時器,讓定時器每隔一段時間打印一次,當OneViewController dismiss的時候,控制器並沒有被銷毀.然而定時器的timer invalidate 在dealloc中已經寫了 ...