1、iOS 开发的结构:Core OS->Core Services->Media->Cocoa Touch
2、程序的入口:
3、设计模式:委托模式
3.1委托模式其实就是协议Protocol
3.2委托的作用有两个,一个是传值,一个是传事件。
4、组件布局
4.1Adopting-Xcode4以下
4.2AutoLayout-Xcode5以上 (AutoLayout会有专文介绍讲述)
4.3SizeClasses-Xcode6以上
5、iOS应用程序生命周期
5.1、not running ->Inactive->Active->Backgroud->Suspended
5.2、现在来看协议中定义的这些需要实现的方法分别是什么作用:
- application willFinishLaunchingWithOptions
告诉代理进程启动但还没进入状态保存 - application didFinishLaunchingWithOptions
告诉代理启动基本完成程序准备开始运行 - applicationWillResignActive
当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了 - applicationDidBecomeActive:
当应用程序入活动状态执行,这个刚好跟上面那个方法相反 - (void)applicationDidEnterBackground:(UIApplication *)application
当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可 - applicationWillEnterForeground
当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。 - applicationWillTerminate
当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。 - applicationDidFinishLaunching:
当程序载入后执行
5.3、ViewController的生命周期中各方法执行流程如下:
init—>loadView—>viewDidLoad—>viewWillApper—>viewDidApper—>viewWillDisapper—>viewDidDisapper—>viewWillUnload->viewDidUnload—>dealloc
5.4、loadView和viewDidLoad的区别就是,loadView时view还没有生成,viewDidLoad时,view已经生成了,loadView只会被调用一次,而viewDidLoad可能会被调用多次(View可能会被多次加载),当view被添加到其他view中之前,会调用viewWillAppear,之后会调用viewDidAppear。当view从其他view中移除之前,调用viewWillDisAppear,移除之后会调用viewDidDisappear。当view不再使用时,受到内存警告时,ViewController会将view释放并将其指向为nil。