您的位置:首页 > 移动开发 > IOS开发

ios基础知识学习

2016-07-27 19:25 615 查看
项目要求做IOS的性能测试,无奈ios小白一个,只能去慢慢摸索了,话说连ios的手机都没摸过,惭愧,惭愧… …

系统架构:





ios和android的架构其实有些相似的,一个内核基于unix,一个是linux。

1.Cocoa Touch:

一些基本系统服务,比如多任务、触摸输入、通知推送和提供一些常用基础的api,比如联系人访问,相机,Ui的展示等

2.Media:

图形,音频、视频和airplay相关框架

3.Core Services:

核心服务,比如iCloud、内购、SQLite数据库和XML支持等

4.Core OS:

对于上层开发者很少用到,类似linux kernel,内存管理呀,进程管理啊,网络协议等等

一些特性:

统一的尺寸:3.5 4 4.7 5.5 7.9 9.7

分辨率:960x640 1136x640 1024x768 2048x1536

隐私提示

开发环境和工具:

Xcode 可以开发Mac OS X和IOS应用 对应相应的sdk版本

Interface Builder 图形化界面开发,拖动万岁

应用程序实例化过程:

main.m-实例化->AppDelegate.m-实例化->ViewController.m

和android类似,先启动activity组件,然后onCreate()方法通过setContentView初始化视图!

窗口机制简单理解:

ios中所有控件的父类是UiView(这玩意后续再学),android是View

每一个ios应用都有一个UIWindow,UIWindow里面有ViewController(理解成一个容器),然后开发过程中都是往ViewController之中添加不同的控件视图

类比android的 window–>decoreView–>很多很多view

工程目录结构:



.h头文件

.m实际代码

AppDelegate:入口类

ViewController:视图控制器

.storyboard:故事版创建的,可以有多个视图,其实就是一个xml布局(android)

新建项目:

nib、xib 其实就是xml了,对应了视图控制器和多个视图(viewgroup–view)

xcode默认新建项目就是采用storyboard模式,可以看成是多个xib的集合

stroyboard中导航(跳转)模式:

stroyboard中定义了三种跳转模式(Sqgue定义了Scene之间的跳转模式):

Push树形

Modal模态

Popover呈现浮动窗口

IOS应用的5种状态:

Not Runner非运行状态

Inactivy前台非活动状态,正在进入前台,不能接受事件

Activy前台接受事件处理状态 –forcegroundprocess - android

Background后台状态 –backgroundprocess

Suspended挂起状态 –emptyprocess

AppDelegate的生命周期:

onCreate() | willFinishLaunchingWithOptions

onStart() | didFinishLaunchingWithOptions

onRestart() | applicationDidEnterBackground

onResume() | applicationDidBecomeActive && applicationDidFinishLaunching

onPause() | applicationWillResignActive

onStop() | applicationDidEnterBackground

onDestory() | applicationWillTerminate

AppDelegate生命周期转换:

启动一个应用:notrunner–>inactive–>active didFinishLaunchingWithOptions—applicationDidBecomeActive

home键:active–>inactive–>background–>suspended applicationWillResignActive—applicationDidEnterBackground

active–>inactive–>background–>suspended–>notrunning(不保留活动) applicationWillResignActive—applicationDidEnterBackground—applicationWillTerminate

挂起重新运行:suspended–>background–>inactive–>active applicationDidEnterBackground—applicationDidBecomeActive

内存清理:background–>suspended–>notruning

视图的生命周期:



笔者:视图load完了,回调一下。view要出来了,回调一下。view已经出来了,回调一下。

然后这四个方法最常用的就是viewWillAppear、viewDidAppear、viewWillDidappear、viewDidDisappear

官方例子是:传感器会每隔设定秒回调回来,知道了view的几种状态函数后可以达到省电的目地,disappear就停止注册传感器

PS:ios6之后不再有viewDidUnload,无视,忽略。

状态保持和恢复:

当app退出或终止,要保持界面中的UI元素状态,再次打开会恢复上一次状态

ps:自带应用和googlemap测试了下都实现了这个规范,但是insta360和第三方都没有实现,输入文字kill掉进程会重新进入

.plist的属性:

一个工程只有一个Project,但是可以有一个或多个Target,可以选择不同设备运行不同target

属性可以设置支持的方向,图标,启动的屏幕(闪屏页),支持设备列表等等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: