iOS开发的入门知识

        iOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。iOS与苹果的Mac OS X操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010WWDC大会上宣布改名为iOS(iOS为美国Cisco公司网络设备操作系统注册商标,苹果改名已获得Cisco公司授权)。

        嗯,百度百科是这样说的。

        简单来说,iOS就是苹果手机和ipad之类的移动端用的系统,而开发的软件就要基于这个系统去开发。

        目前来说的开发iOS软件是用了两套语言,一套是OC(objective-c),一套是swift。而主要开发的编译器是xcode。

        那么先来介绍下oc在xcode下的入门操作。


首先去建立一个Xcode -> 点击第create a new Xcode project -> Single View Application下的一个应用程序


iOS开发的入门知识_第1张图片

这里Product Name就是你项目的名字

Team是你的团队,当然一开始学的时候,就不需要填写 Organization Name 和Identifier当然也是暂时不需要的

iOS开发的入门知识_第2张图片

Language要记得填写Objective-c,如果是Swift的话,出来的洁面以及编写的语法也是不一样的

Devices是你的载体,包括通用,iPhone和iPad


现在创建好了之后会出现这样的界面


iOS开发的入门知识_第3张图片

那么在.h文件里写基本是导入的头文件就是一堆 #import 等等


iOS开发的入门知识_第4张图片

那么在.m文件里就写代码的地方,在 viewDidLoad这个位置写,下面的是内存管理,暂时先不用理

那么说说main

1、main函数,程序唯一的入口

2、UIApplicationMain函数函数作用

1)创建一个应用程序UIApplication对象,他是应用程序的象征,一个UIApplication对象就代表一个应用程序

2)指定谁管理应用程序的生命周期

3、到了以后慢慢会发现,函数等一系列方法,应该写在main函数之外,而不是在main函数内 

二、程序的生命周期

作者 JoanKing

#import"AppDelegate.h"

@interfaceAppDelegate()

@end

@implementationAppDelegate

#pragma mark 系统自动生成一个窗体 //#pragma mark 是标记的一种方法

//1.当Applaction对象被实例化后,程序启动调用这个方法

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {

// Override point for customization after application launch.

NSLog(@"输出系统自己创建的window=%@",self.window);

#pragma mark  手动创建一个UIwindow对象

//1).创建一个window对象

//UIWindow *customWindow = [[UIWindow alloc]init];

//这样是oc的语法,其实创建这样的一个东西,就可以说是定义一个指针,然后alloc 是内存分配,init 是初始化

//注意

//在实际开发中很少会用到new,一般创建对象时我们一般是

//[[className alloc]init];

//区别只在于alloc分配内存的时候使用了zone它是给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的内存,提升了程序处理速度。

//不推荐使用new:原因是使用new的话,初始化方法被固定死只能使用init,不能调用其他的initXX方法。采用new方法只能采用默认的init方法完成初始化,采用alloc的方式可以用其他定制的初始化方法。

//2).获取到UIScreen对象

UIScreen*screen = [UIScreenmainScreen];

//4).给window设置一个位置和尺寸

CGRectrect = [screen bounds];//自动获得当前所选择的模拟器的窗体大小

UIWindow*customWindow = [[UIWindowalloc]initWithFrame:rect];

//5).给窗体设置背景颜色

customWindow.backgroundColor = [UIColorblueColor];

//6).给window设置一个根控制器,window和控制共同协作起来显示界面

customWindow.rootViewController = [[UIViewControlleralloc]init];

//7).将customwindow赋值给self.window

self.window = customWindow;

//8).把定义的window作为主window,并显示出阿莱

[customWindow makeKeyAndVisible];

#pragma mark  在桌面上放一些试图

//用试图做一个王字玩玩

//第1个竖UIView*view = [[UIViewalloc]init];view.frame =CGRectMake(140,50,40,380);view.backgroundColor = [UIColoryellowColor];[self.window addSubview:view];

//第1个横UIView*view1 = [[UIViewalloc]init];view1.frame =CGRectMake(50,50,220,40);view1.backgroundColor = [UIColorgreenColor];[self.window addSubview:view1];

//第2个横UIView*view2 = [[UIViewalloc]init];view2.frame =CGRectMake(50,220,220,40);view2.backgroundColor = [UIColorredColor];[self.window addSubview:view2];

//第3个横UIView*view3 = [[UIViewalloc]init];view3.frame =CGRectMake(40,390,240,40);view3.backgroundColor = [UIColorpurpleColor];[self.window addSubview:view3];

NSLog(@"程序启动");returnYES;}

//3.当应用程序将要进入非活跃状态执行,比如来电话了、锁屏等。

- (void)applicationWillResignActive:(UIApplication*)application {NSLog(@"程序进不活跃状态");}

//4.一般程序进入后台,就会进入非活跃状态,但如果你的程序支持后台,程序在后台也保持活跃状态

- (void)applicationDidEnterBackground:(UIApplication*)application {NSLog(@"程序进入后台");}

//5.程序进入前台

- (void)applicationWillEnterForeground:(UIApplication*)application {NSLog(@"程序进入前台");}

//2.当应用程序进入活跃状态执行

- (void)applicationDidBecomeActive:(UIApplication*)application {

NSLog(@"程序变成活跃状态"); }

//6.当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作

- (void)applicationWillTerminate:(UIApplication*)application {

NSLog(@"程序退出");}

@end



出来就是这样了

iOS开发的入门知识_第5张图片




UIWindow

借用作者 文顶顶 

1、UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow

iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了

一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow。也就说,没有UIWindow,就看不见任何UI界面

补充:UIWindow是创建的第一个视图控件(创建的第一个对象是UIapplication)如下图:

添加

2、程序中每个时刻只能有一个UIWindow是keyWindow,通常应用程序只有一个window

创建UIwindow,再创建控制器,创建控制器的view,然后将控制器的view添加到UIWindow上。

文档中关于该部分的解释:

3、iOS程序启动完毕后,会首先创建一个UIWindow

4、一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow,也就是说没有UIWindow,就看不见任何UI界面

5、常用方法

1.简单说明

创建一个空的项目,就可以看到UIWindow是怎么出来的了。在程序启动完毕之后就会调用一次,创建过程如下:

提示:应用程序启动之后,先创建Application,再创建它的代理,之后创建UIwindow。UIWindow继承自UIview。

2.把view添加到uiwindow

创建一个控制器,把view添加到uiwindow上面(有两种方式)

(1)直接将控制器的view添加到UIWindow中,并不理会它对应的控制器

[self.window  addsubview:vc.view];

(2)设置uiwindow的根控制器,自动将rootviewcontroller的view添加到window中,负责管理rootviewcontroller的生命周期

[self.window.rootviewcontroller=vc];

两个方法的区别:

以后的开发中,建议使用(2).因为方法(1)存在一些问题,比如说控制器上面可能由按钮,需要监听按钮的点击事件,如果是1,那么按钮的事件应该由控制器来进行管理。但控制器是一个局部变量,控制器此时已经不存在了,但是控制器的view还在,此时有可能会报错。注意:方法执行完,这个控制器就已经不存在了。

问题描述1:当view发生一些事件的时候,通知控制器,但是控制器已经销毁了,所以可能出现未知的错误。

问题描述2:添加一个开关按钮,让屏幕360度旋转(两者的效果不一样)。当发生屏幕旋转事件的时候,UIapplication对象会将旋转事件传递给uiwindow,uiwindow又会将旋转事件传递给它的根控制器,由根控制器决定是否需要旋转

UIapplication->uiwindow->根控制器(第一种方式没有根控制器,所以不能跟着旋转)。

提示:不通过控制器的view也可以做开发,但是在实际开发中,不要这么做,不要直接把view添加到UIWindow上面去。因为,难以管理。

你可能感兴趣的:(iOS开发的入门知识)