昨天 调试程序 已经快要上线了 突然有个BUG 找了半天 才找到是因为这个警告 但是 解决这个警告又花了一天的时间 试了各种消除控制器的方法 都不可用 其中
并且 有这个bug 手机真机测试完全没问题 只有在iPad上 有这个警告 就会出问题
第一个解决办法 试了下 半成品 上下代码
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(0.51 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{
if (![self.presentedViewController isBeingDismissed]) {
[self dismissViewControllerAnimated:NO completion:nil];
}
});
其中 这个0.51 其实说是时间间隔 但是 我测试了下 如果 设置成了 0.01 测试了10此 每次还是会出现这个bug 如果0.99 测试了20次 没出现一次
个人认为 这数字 好像就是百分比的概率问题 欢天喜地 的把接口 扔给游戏那边了 说一下 我这边是客户端 做完要给游戏端接入下 测试下 能用不 我这边测试能用
可是 一到游戏那边 这个方法 怎么弄都不行 有的时候是 第一次运行可以 第二次运行不行 第三次运行又可以了 ,反正就是找不到规律 所以这个方法 对我还是不行
第二个 解决方法 试了下 完全可以用了 上下代码
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self forcedUpdateVersionSelf];
}
没错 把你要dismiss 的方法 写到 -(void)viewDidAppear:(BOOL)animated 中即可 我 原先是写到
-(void)viewDidLoad中了 所以 总出这个错误
这个错误翻译下 :你的视图控制器还在程序中, 你却试图清除你的ViewController。
理解的意思 是 应该是 你的视图还没有完全加载成功呢 你却要消除视图 这样计算机 就可能有时候 搞不清 你到底 想干什么 到底是加载 还是清除