info plist
-products 产品目录
-supporting Files 资源文件放置
- info.plist 项目的配置文件
Localization native development region本地化
Executable File 可执行文件路径 ***千万不要改
Bundle identifier 应用唯一标识
infoDictionary version plist文件的版本号
bundle name 安装的时候创建的文件夹名称
bundle display 安装到桌面的APP名字
bundle OS Type code 不要改
bundle versions string,short itunes上的版本号
bundle version 上传到 APP store 需要用的版本号 比之前的版本号要高
launch screen interface file base name 启动界面的配置
main storyboard file base name 主storyboard
required device capabilities CPU框架
TARGTS 和 info plist 对应
学习新东西要弄清这个东西是用来干什么的
Pch文件的作用
-让项目中所有的文件都会导入里面的内容
-可以导入公共的头文件,网络工具类
-可以定义宏,访问路径
-绝对路径
-$(SRCROOT)/工程名/文件名.pch
重新定义NSlog有什么作用:
#ifdef DEBUG开发环境
#define HMLog(...) NSLog(__VA__ARGS)
#else
#Release 打包上线环境
注意 区分 OC 还是 C
#ifdef __OBJC__
#endif
UIapplication
- 代表整个应用程序,是一个单例的类
在整个程序启动的时候,会创建一个 UIapplication对象,让他来管理 APP
应用图标右上角的数字 **** 注意只能通过注册
程序生命周期
-程序启动时
-程序进入后台
-程序后台到前台
-程序销毁
-内存警告
程序的启动过程
- main.m C 语言程序的入口
- 进入iPhone程序入口 UIapplicationMain
argc : argv数组的长度
argv : 数组的指针
principalClassName:UIApplication类
delegateClassName:就是 APPdelegate 类
如果第三个参数为 nil, 先会去 info.plist去找NSPrincipaClass.还没有就用UIapplication
为什么要有 APPdelegate ,让程序员在各个阶段做一些操作
UIwindow
去掉main,就没有window了,必须手动代码创建
UIwindow是我们程序创建的第一个 view
有了 UIwindow我们程序才能显示界面
必须指定一个根控制器,也可以自己定义控制器
在应用程序中有很多个window,键盘也是一个window,但是只有一个主window
用 alloc 方式创建先找同名的 XIB 然后再找同名的去掉 controller 的 XIB
懒加载loadview
控制器的根view是懒加载创建
loadview 的作用就是用懒加载的方式创建控制器的根view 显示的时候会调用loadview 方法
通过 sb,xib 都会走 loadview 方法,并且界面上展示就是 xib/sb 上的内容
代码 init 创建控制器,先找同名的 xib,再去找 controller 的 xib,如果没有创建一个空的控制器内部重写 loadview
super loadview 就是创建根view的,如果 super loadview 不写了,那么就自己创建一个 view, 给 self.view
如果是从 xib/sb加载出来的, view 就是从 xib/sb加载出来的,如果代码创建,它就是一个空的
管理控制器的控制器
控制器的生命后期
-viewdidload 视图加载完成
-viewWillAppear 视图将要显示到界面
-viewDidAppear 视图已经显示到界面
-viewWillDisappear 视图将要消失
-viewDidDisappare 视图已经消失-用来销毁根 view
viewWillUnload 用来销毁subview 销毁子view
viewDidUnload
在使用导航控制器的时候,在开发的时候一定要测试返回(上一个)控制器是否已经销毁