1、iOS界面与架构
创建一个单视图的工程,找到它的主函数,在主函数里面打上断点,逐步执行,可以查看它的执行过程。
模拟器没有传感器,没有内置GPS。
加载视图过程中,一个应用程序启动以后,它首先会找到委托里面的applicationdidFinishLaunchingWithOptions;,视图加载时会首先调用上述方法。
在applicationdidFinishLaunchingWithOptions中,UIwindow窗口相当于画框,UIViewController相当于画板,每一个UIViewController里的View相当于画布,View可以随便换。
applicationdidFinishLaunchingWithOptions执行实现的功能:首先创建一个窗口self.window
self.调用属性,_window调用的是成员。
成员和属性的关联:可以通过synthesize生成,@synthesize window = _window;释放之前有一个合成,即@synthesize window = _window;现在的Xcode可以将上述语句省去。
然后创建一个根视图self.window.rootViewController = self.viewController;最后return YES
之后跳过断点执行的是applicationDidBecomeActive(UIApplication *)application方法
加载完成后,视图变得可操作,活跃的,此时窗口已经建立完成,但画布没有放上去。接下来执行applicationWillTerminate:(UIApplication *)application方法,即线程将要中止的,例如玩游戏时有电话进来,此时游戏停止变为后台运行,因为电话短信在它的操作系统中级别是最高的。
还有两个方法applicationWillEnterForegrond:(UIApplication *)application方法,回到前台;applicationDidEnterBackground(UIApplication *)application方法,回到了后台以后。怎样回到后台,点home键或者手机的主菜单,则退到后台。
简单介绍创建视图工程的几个方法:
dealloc释放内存的方法,相当于C++里面的析构函数;因为重写一个方法的缘故,要写上super dealloc,要写上父类的方法,先释放对象,再调用父类的dealloc方法。比如初始化方法,因为是NSObject里面的方法,它是所有的父类,此时你写的方法就等于重写。重写需要先调用父类的。
applicationdidFinishLaunchingWithOptions;加载视图,加载应用程序,它首先会执行这个方法。
启动程序
lifeCycle[40428:11303] willFinishLaunchingWithOptions
lifeCycle[40428:11303] didFinishLaunchingWithOptions
lifeCycle[40428:11303] applicationDidBecomeActive
按下home键
lifeCycle[40428:11303] applicationWillResignActive
lifeCycle[40428:11303] applicationDidEnterBackground
双击home键,再打开程序
lifeCycle[40428:11303] applicationWillEnterForeground
lifeCycle[40428:11303] applicationDidBecomeActive
如果不会使用断点,可以使用暴力调试,调用NSLog()函数,如下:NSLog(“%s”,__func__);输出当前方法名,(双下划线加上function)NSLog(“%s”,__FILE__);输出这个方法所在的文件名;NSLog(“%d”,__LINE__);输出当前的行数。
viewDidLoad功能:加载nib视图,进行初始化。
loadview;用代码实现Laber,弊端:如果没有使用nib文件,就用loadview,作用较少,不常用。
<>和“”的区别:<>在系统里寻找需要的类,效率高,“”寻找自定义的类,效率较低。
@class 前向引用,告诉系统有这样一个类,稍后导入,一般写在.h文件中。
A调用B,B又调用A是不正确的。不可相互导入,但可以用前向引用。
1、Interface Builder简介:简称IB
用来构建图形界面,提供工具箱,包含常用界面元素,工具箱可扩展。
Nib文件:
界面配置文件,旧格式的.nib和新格式的.xib,苹果文档统一使用.nib
IB的组成部分:
File’s Owner:Nib文件的拥有者,从磁盘加载nib文件
First Responder:当前正在与之交互的对象,随着用户与界面的交互而变化
View(相框内的照片):显示用户界面,完成用户交互,是UIView类或其子类。
创建视图控制器:
步骤:
(1)设计界面,从库中添加需要的控件
(2)在代码中添加相应的IBOutlet变量和IBAction方法
(3)连接控件到相应的变量
(4)连接行为到相应的方法