周六加班,真是个让人悲伤的故事。今天改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中已经写了 ...