Day19 ios常用文件

Info.plist文件

程序运行的配置文件,不能删除(修改了infoplist文件,模拟器应用要删除,程序要clean),该文件的图形化配置界面就是直接点击项目,主界面配置。

bundledisplayname:程序名称

bundleID:上架标识

bundleversionstring:正式版本

bundleversion:内部版本

mainstoryboard:程序启动加载的storyboard

InfoPlist.strings

与Info.plist本地化有关

pch

是个头文件,能被项目中所有源文件共享和访问,一般用来定义一些全局的宏

__OBJC__项目中.m和.mm文件中默认都定义了这个宏,如果全局的头文件或者宏只在.m和.mm文件中使用,就写到这个宏中。在这个宏中定义Log,这样发布时注释掉所有Log比较方便

#define Log(...) NSLog(__VA_ARGS__)

发布时,注释掉此句如下

#define Log(...) // NSLog(__VA_ARGS__)

综上,可以写为

#ifdef DEBUG

#define Log(...) NSLog(__VA_ARGS__)

#else

#define Log(...) 

#endif

UIApplication

每个应用都有自己的UIApplication,单例模式,和Android中一样UIApplication *sharedApplication = [UIApplication sharedApplication];可以获取这个单例,程序启动第一个创建的对象就是UIApplication对象

APPDelegate

app中断时会产生些系统事件,UIApplication会通知它的delegate来处理这些事件,包括

1、应用程序的生命周期事件

applicationdidFinishLaunchingWithOptions(app启动完毕时调用)

applicationWillResignActive(失去焦点时调用)

2、系统事件(来电,点击home等)

applicationDidEnterBackground(app进入后台时调用,一般用来保存应用程序的数据及状态)

applicationDidEnterForground(app进入前台时调用,一般用来恢复应用程序的数据及状态 )

3、内存警告

applicationDidReceiveMemoryWarning(app接受到内存警告时调用)

程序启动过程

1、执行main函数

2、UIApplicationMain(argc,argv,nil,NSStringFromClass([AppDelegate class])));//用户传入的参数个数、用户传入的参数、 NSString *principalClassName:指定应用程序类名,该类必须是UIApplication或子类,如果为nil,默认为UIApplication、NSString *delegateClassName:指定应用程序的代理类,该类必须遵守UIApplicationDelegate协议

3、根据后两个参数,创建UIApplication对象和对象代理

4、开启事件循环(队列),监听系统事件

UIWindow

是一个特殊的UIWindow,在一个app中只有一个主UIWindow,程序启动创建的第一个视图控件就是UIWindow,然后创建控制器的view,接着将控制器的view添加到UIWindow上。创建一个空项目时,可以在APPDelegate中看到启动代码。

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

self.window.backgroundColor = [UIColor whiteColor];

设置根控制器

(见UINavigationController中)

UIWindow成为主窗口

[self.window makeKeyAndVisible];

UINavigationController

导航控制器通过栈来管理子控制器 

1、创建导航控制器

UINavigationViewController *nav = [[UINavigationViewController alloc] init];

2、设置根控制器,这个控制器将启动

self.window.rootViewController = nav;

3、将第一个创建的控制器添加到导航控制器中

OneViewController *one = [[OneViewController alloc] init];

[nav pushViewController:one animated:YES];

或者

OneViewController *one = [[OneViewController alloc] init];

UINavigationViewController *nav = [[UINavigationViewController alloc] initWithRootViewController:one];

self.window.rootViewController = nav;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值