首页 > 代码库 > Lesson1 -- IOS开发概述 && HelloWorld

Lesson1 -- IOS开发概述 && HelloWorld

 

 

第一部分:IOS开发概述

1. IOS 系统架构

iOS是基于UNIX的,就系统的稳定性而言,要比其他操作系统好很多,我们完全可以相信这个操作系统!

  iOS的系统架构分为四个层次:

    1)可触摸层

    2)媒体服务层

    3)核心服务层

    4)核心操作系统层

  如下图:

    

 

 

 

2. iOS系统架构中各层次的功能

  可触摸层(Cocoa Touch):为应用程序开发提供各种有用的框架,并且大部分均与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。

  媒体服务层(Media Services):负责提供用于构建应用程序的图形和声音的API,可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形绘制,以及制作基础的动画效果。

  核心服务层(Core Services):这一层提供了访问Core OS层的硬件功能并包含了Foundation框架。正因为如此,这一层提供了构建iOS应用程序所需的大量基础元件,例如字符串、数组以及其他通用数据类型。核心服务层可以访问iOS的一些服务,比如网络连接、文件访问、数据库、用户定位等。

  核心操作系统层(Core OS ):这一层次包含了iOS操作系统的很多基础组件,其中包括:系统内核、内存管理、文件系统、电源管理、网络组件和设备驱动等,可以直接和硬件设备进行交互。

 

 

3. iOS系统框架表格

框架名称

功能

Foundation

提供OC的基础类(像NSObject)、基本数据类型等

UIKit

创建和管理应用程序的用户界面

QuartzCore

提供动画特效以及通过硬件进行渲染的能力

CoreGraphics

提供2D绘制的基于CAPI

SystemConfiguration

检测当前网络是否可用和硬件设备状态

AVFoundation

提供音频录制和回放的底层API,同时负责管理音频硬件

CFNetwork

访问和配置网络,像HTTPFTPBonjour Services

CoreFoundation

提供抽象的常用数据类型,如Unicode stringsXMLURL

CoreLocation

使用GPSWIFI获取位置信息

框架名称

功能

GameKit

为游戏提供网络功能:点对点互联和游戏中的语音交流

AddressBook

提供访问用户联系人信息的功能

AddressBookUI

提供一个用户界面,显示存储在地址簿中的联系人信息

AudioToolBox

提供音频录制和回放的底层API,同时负责管理音频硬件

AudioUnit

提供一个接口,让应用程序可以对音频进行处理

MapKit

为应用程序提供内嵌地图的接口

MediaPlayer

提供播放视频和音频的功能

MessageUI

提供视图控制接口用以处理E-mail和短信

OpenGLES

提供动画特效以及通过硬件进行渲染的能力

StoreKit

为应用程序提供在程序运行中消费的支持

 

 

4. iOS 和 android 系统架构对比

  Android是基于Linux内核设计的,在Linux内核上面运行了一个Java虚拟机,虚拟机再运行软件。像是在一个系统上面又套了一个系统,所以占内存较大、运行速度略低。

  IOS是基于UNIX的,直接与底层硬件通信。系统底层、应用框架、应用软件都是采用C/C++或者Objective-C写的,所以有很高的运行效率。

 

 

 

 

第二部分: Hello World 

 

环境:

  OS X : 10.9.2 

  XCODE : 5.1.1  

 

 

目标:

  1. 新建项目

  2. 搭建界面

  3. 监听按钮点击事件

  4. 获取文本框内容,并将结果显示在文本标签中

 

笔记:

  1. 创建stroyboard项目,如图

    

  2. 搭建界面

  

  3. 监听按钮点击事件

  

  4. 获取文本框内容,并将结果显示在文本标签中

  

 

 

 

 

 

 

备注:

  1. 如果当点击【Editor】按钮,编辑区域呈左右页面,

    可以在【view】-【Assistant Editor】- 【Assistant Editor on Botton】,

    修改为 上下结构,进行呈现。

  2. 可以发现,在连线的时候,自动会生成 【IBOutlet】【IBAction】以IB为前缀的词语,

    是因为利用 Interface Builder 工具的原因。 Outlet - 是告诉程序可以操作对象。

  3. 通常,在一个类的内容,使用自己的属性,为了提高效率,可以使用成员变量代替属性,

    比如:_txtUserName.text 就可以代替(self.lblUserName.text)。

    定义属性的目的是:为了其他类访问本类时,保证内部数据安全。

 

   4. 当输入文本框的时候,会自动弹出一个键盘。当点击【完成】按钮后,

    想把键盘也隐藏掉,可以使用 [self.view endEditing:YES];



 

                          ---  iCode , 爱生活。 

 

 

 

Lesson1 -- IOS开发概述 && HelloWorld