刚才调试的时候除了一些小问题,有一段代码要重用

    NSString *key = @"CFBundleVersion";
// 取出沙盒中存储的上次使用软件的版本号
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *lastVersion = [defaults stringForKey:key]; // 取出当前版本号
NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key];
ETLog(@"%@===%@=================",self.window,application.keyWindow);
if ([lastVersion isEqualToString:currentVersion]) { application.keyWindow.rootViewController = [[ETTarBarControllor alloc] init];
}
else{
application.keyWindow.rootViewController = [[NewFeatureViewController alloc] init];
[defaults setObject:currentVersion forKey:key];
[defaults synchronize];
}

本来是要抽取出来的,然后在工具类里面用[UIApplication sharedApplication].keyWindow.rootViewController替代原来的self.window.rootViewController,但是发现,用真机调试的时候出现黑屏,无法正常显示,我当时就觉得奇怪,不就是把代码的位置换了吗,后来我把Appdelegate的self.window.rootViewController换成

application.keyWindow.rootViewController,发现还是不行,我那个郁闷啊,后来同样的代码我再虚拟机上运行,妈蛋,可以运行,我就一定在真机上调试,于是,我又回到真机上,我吧application.keyWindow 和 self.window打印出来,注意,这是在真机上,发现appapplication.keyWindow 为空,self.window有值,于是,我吧[self.window makeKeyAndVisible];放到调用application.keyWindow的前面,居然可耻的有值了,真机上也可以运行了,但是不知道什么原因,可能是application的生命周期有关把,那个朋友知道什么原因的说一下啊,就这样一个莫名的bug大致搞定。

oc学习之路----application.keyWindow.rootViewController与self.window.rootViewController与[self.window makeKeyAndVisible];小发现的更多相关文章

  1. oc学习之路----APNS消息推送从证书到代码(2015年4月26号亲试可用)

    前言:看这篇博客之前要准备:首先的有一个99刀的个人开发者账号或者199刀的企业开发者账号,其次你用的是apns消息推送,(本人之前四处打听有没有其他消息推送的方法:收获如下:首先如果想做到apns的 ...

  2. oc学习之路----代理模式

    今天刚学完oc的代理模式,觉得有点新奇,第一次接触,原理 A完成一件事,但是自己不能完成,于是他找个代理人B 替他完成这个事情,他们之间便有个协议 (protocol),B继承该协议来完成A代理给他的 ...

  3. oc学习之路----scrollView的代理模式

    右图是OC里面scrollView的代理的描述,从这里可以开出来,任何对象都可以作为scorllView的代理对象只要实现了UIScrollViewDelegate这个协议,为什么呢,原因要追究到UI ...

  4. oc学习之路----多级指针的使用和内存分析

    ---恢复内容开始--- 精髓:要熟悉指针的使用,首先要熟悉指针的各种状态存得是什么数据.(以一级指针 int *p1 二级指针:int **p2 三级指针:int ***p3为例) 一级指针:*p1 ...

  5. oc学习之路----QQ聊天界面

    用到的技术:自定义cell,通知机制,代理模式 transform 1.自定义cell(通过代码自定义cell) ①首先新建一个类继承UITableViewCell ②重写initWithStyle: ...

  6. oc学习之路----代理模式2-使用步骤

    之前已经写过一个个人关于代理模式的一些看法,现在就来总结一下使用代理模式的步骤吧. 1.先搞清楚谁是谁的代理(delegate) ● 2.定义代理协议,协议名称的命名规范:控件类名 + Delegat ...

  7. oc学习之路----通过代码自定义cell

    需求背景:由于tableView中每一个cell的数据与布局都不一样,故不能用xib实现功能,这是用代码写自定义cell就有必要了. 步骤 1.新建一个继承自UITableViewCell的类 2.重 ...

  8. oc学习之路----内存管理

    直接上图啊.

  9. oc学习之路-----搞死指针之内存存储int类型

    关于每个数据类型个字节在内存中的存储地址(以int为例) 先上图 如题,为什么说好的*p = &c是1啊,为什么是513呢,一开始,我也觉得挺惊讶的,后面听老师分析了一下才知道怎么回事,但是还 ...

随机推荐

  1. python 删除文件和文件夹

    1.删除文件 '''删除文件 ''' def DeleteFile(strFileName): fileName = unicode(strFileName, "utf8") if ...

  2. 随机产生字母a--z, A-Z 的任意组合

    VERSION 1.0    引自: http://www.coderanch.com/t/134491/Security/generating-secure-tokens package demo; ...

  3. JAVA File常用的API介绍

    package coreJava; import java.io.File; import java.io.IOException; public class FileDemo { public st ...

  4. SQL最简单分类简介

    1丶标识符分类 a.规则标识符 严谨遵守标识符有关格式的规定.(不必使用界定符<如" "[]等>). b.界定标识符 指使用了""或者[]等界定符. ...

  5. ANDROID_MARS学习笔记_S01原始版_013_广播机制二

    一.代码1.xml(1)main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayo ...

  6. Visual Assist X

    老师推荐的一款vc++6.0插件 visual assistx_百度百科 http://baike.baidu.com/view/4439152.htm?fr=aladdin 下载 VC++6.0助手 ...

  7. [Quick-x]制作新手引导高亮区域方法之一:混合模式

    demo下载:https://github.com/chenquanjun/Quick-x-HighlightArea 1.混合模式 (1)首先创建一个全屏的CCRenderTexture实例 这里使 ...

  8. ide远程调试

    这篇写得好:http://qifuguang.me/2015/09/18/IntelliJ%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95%E6%95%99%E7%A8%8B/

  9. 在ubuntu系统荣品开发配套JDK安装

    chmod 755 jdk-6u29-linux-i586.bin ./jdk-6u29-linux-i586.bin

  10. Layout Resource官方教程(1)简介

    Layout Resource SEE ALSO Layouts A layout resource defines the architecture for the UI in an Activit ...