一.pch文件以前xcode创建的同时会自动创建,但是之后的.pch文件要自己手动创建。现在之所以没有,是因为pch文件定义的是全局的,所以加载的时间和效率受到影响,现在都是自己创建。
pch文件的作用,就是
1)可以定义一些全局都需要的宏(整个项目都用的上的宏)
2)用来包含一些全部的头文件(整个项目都用的上的头文件)
3)能自动打开或者关闭日志输出功能
在#ifdef __OBJC__ 和#endif 之间定义的宏或者引入的头文件或者日志的输出关闭,都可以写在这里面,尽量不要写在外面,因为这之间定义的内容,只能用在.m或者.mm文件中,而定义在外面的内容,则是整个项目都可以用的。
例如:
#ifdef DEBUG //调试阶段
#define DLog(...) NSLog(__VA__ARGS__)
#else //发布阶段
#define DLog(...)
#endif
调试阶段,肯定是需要打印的,系统会自动定义一个DEBUG的宏
发布阶段,写好的代码生成ipa等压缩文件,上传到AppStore上,安装到用户设备上,系统会删除叫做DEBUG的宏
二.iOS7中的状态栏
1.从iOS7开始,系统提供了2种管理状态栏的方式
1)通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏),默认情况下是这种方式管理
- (UIStatusBarStyle)preferredStatusBarStyle {
returnUIStatusBarStyleDefault;
}
- (BOOL)prefersStatusBarHidden {
returnYES;
}
2)通过UIApplication管理(一个应用程序的状态栏都由它来管理)
UIApplication *app = [UIApplicationsharedApplication];
[app setStatusBarHidden:YESwithAnimation:UIStatusBarAnimationFade];
// app.statusBarHidden = YES;
app.statusBarStyle =UIStatusBarStyleLightContent;
但是前提是需要设置info.plist文件,添加一个字段,View controller-based status bar appearance ,改为YES,就可以了三、
//设置应用图标上的数字,0代表清除图标右上角的数字
app.applicationIconBadgeNumber =0;
//设置显示联网状态
app.networkActivityIndicatorVisible =YES;
//URL :一个资源的唯一路径
//URL的组成=协议头://主机域名/路径
//网络资源URL的组成 =http://wwww.baidu.com/wanghuan.png
//本地文件资源URL的组成 =file:///Users/apple/Desktop/3.png
[app openURL:[NSURLURLWithString:@"http://www.baidu.com"]];
[app openURL:[NSURLURLWithString:@"tel://10086"]];
/**
* app进入后台的时候调用
* 一般在这里保存应用的数据,包括游戏数据,比如暂停游戏等
*/
- (void)applicationDidEnterBackground:(UIApplication *)application
五、程序启动完整过程
1.main函数
2.UIApplicationMain 创建UIApplication对象,创建UIApplication的delegate对象
3.delegate对象开始处理(监听)系统事件(没有storyboard的情况),程序启动完毕的时候,就会调用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions,这个方法,在这个方法中创建UIWindow,创建和设置UIWindow的rootViewController,然后显示窗口
4.根据info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard的情况),创建UIWindow,创建和设置UIWindow的rootViewController,然后显示窗口