应用 开发和游戏开发

IOS 应用立 足的两 大要素:美观 的 UI 界面 ( 好的卖相 )和实 用的功 能

IOS开发需要掌握的内容
–语言基础:OC,C,C++(可选学),基础框架(Foundation)

UI : 基础控件(UIWindow、UIScreen、UIButton、UILabel等)、高级控件(IScrollView、ITableView等)


功 能: 数据存取、动画(调试出来的,移动应用的亮点)、事件、网络、多线程等


游戏 : cocos2d 或cocos2d-x(与 UIKit 开发区别比较大,对游戏不感兴趣可以不学,需要学习C++)



iOS系统架构


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


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


可触摸层


媒体服务层


核心服务层


核心操作系统层


ios开发实战视频教程 ios 开发_ios开发实战视频教程


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



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


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


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


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

可触摸层

Cocoa Touch

在 iOS 系统 的 4 个层中 ,我们主要面向的是 CocoaTouch 层

Cocoa Touch

层中有个非常重要的 UIKit 框架 ,该框架为应用程序提供了各种可视化组 件 , 如下所示 :

ios开发实战视频教程 ios 开发_应用程序_02


Cocoa Touch 层中的其他框架 ,对于我们应用程序的开发而言,也 是非常 有用的!诸如:访问用户通信录的框架 、获取照片信 息的框架 、负责加速感应器等硬件 支持的框架等等


iOS 框架的使用策略


如果在开发过程中需要用到某些特殊功能时,可以先尝试使用系统自带的框架


这些框架分别来自于 不同的层,对 iOS 系统架构 4 层的理解,可以帮助我们快速找到需要使用的框架


就目前而言,我们只需 对这些框架有个 印象即可,不必每一个都去研究,等用到的时候再去 研究


iOS 系统框架表格


ios开发实战视频教程 ios 开发_系统架构_03


ios开发实战视频教程 ios 开发_应用程序_04



iOS 和

android 系统架构对比

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


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


IOS应用的开发步骤:

1.新建项目


2. 搭建 UI 界面


3 .  监听 按钮 点击事件


4 .  获取 文本框 内容


5 .  将结果显示在 文本标签 中


新建项目 1

—— 选择项目模板

ios开发实战视频教程 ios 开发_iOS_05


新建项目 2

—— 设置项目属性(注意:选择Use Storyboards与不选的区别)

ios开发实战视频教程 ios 开发_ios开发实战视频教程_06


新建项目 3

—— 保存项目

ios开发实战视频教程 ios 开发_系统架构_07


新建项目 4

—— 运行(command+r)

ios开发实战视频教程 ios 开发_应用程序_08


搭建界面 1——

界面入口

ios开发实战视频教程 ios 开发_iOS_09


搭建界面 2

—— MainStoryboard.Storyboard

ios开发实战视频教程 ios 开发_ios开发实战视频教程_10


搭建 界面

3 —— 显示对象库

ios开发实战视频教程 ios 开发_iOS_11


搭建 界面

4 —— 界面搭建

ios开发实战视频教程 ios 开发_应用程序_12


搭建 界面

5 —— 两个细节

ios开发实战视频教程 ios 开发_ios开发实战视频教程_13


监听按钮点击事件 1——

助理编辑器窗口

ios开发实战视频教程 ios 开发_ios开发实战视频教程_14


监听按钮点击 事件

2—— IBAction 告知 代码发生事件

ios开发实战视频教程 ios 开发_应用程序_15


监听按钮点击 事件

3—— 建立 IBAction

ios开发实战视频教程 ios 开发_iOS_16


// 点击你好按钮
- (IBAction)tapHelloButton:(id)sender;
  监听按钮点击 
 事件 
 4—— 
 准备编写代码 
 
- (IBAction)tapHelloButton:(id)sender
{
}

出现问题:

1.如何获得文本框控件?

2.如何获得文本标签控件?

ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
// 用户名,Outlet告诉程序可以操作对象
 // 定义属性之后,Xcode会自动建立Getter & Setter方法
@property (weak,nonatomic)IBOutlet UITextField *userNameText;
// 消息标签
@property (weak,nonatomic)IBOutlet UILabel *helloLabel;
// 点按Hello按钮
- (IBAction)tapHelloButton:(id)sender;
@end


ViewController.m
#import "ViewController.h"
 @interface ViewController ()@end
 @implementation ViewController
 - (void)viewDidLoad
 {
     [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
 }

 - (void)didReceiveMemoryWarning
 {
     [super didReceiveMemoryWarning];
     // Dispose of any resources that can be recreated.
 }

将结果显示在文本标签中

#pragma mark - IBActions

- (IBAction)tapHelloButton:(id)sender
{
// 通常,在一个类的内容,使用自己的属性时,为了提高效率
     // 可以使用成员变量代替属性
     /**
      属性定义的目的,是为了其他的类访问本类时,保证内部数据安全
      *///1. 获取文本框内容,并且拼接字符串
NSString *text = [NSStringstringWithFormat:@"你好 %@!",_userNameText.text];
//2. 将结果显示在文本标签中
_helloLabel setText:text];
}
 @end



Hello World—

— 运行效果

发现问题:点击按钮时 键盘没有被关掉


ios开发实战视频教程 ios 开发_应用程序_17


让视图关闭键盘

- (IBAction)tapHelloButton:(id)sender
{
   //1. 获取文本框中的内容
   NSString  *text = [NSStringstringWithFormat:@"你好 %@!",_userNameText.text];
   //2. 将结果显示在标签中
   [_helloLabel setText:text];
   //3. 让视图关闭键盘
   [self.view endEditing:YES];
}