天天看点

ios开发基础知识

        1.什么是iOS

        iOS包括了当某个应用程序在iPhone、iPod touch或iPad上运行时所用到的操作系统和技术支撑。iOS的许多技术是基于Mac OS X 桌面系统的,但它毕竟是专门针对移动环境而设计的,所以还拥有许多特有的技术(多点触摸和加速计)

        开发IOS应用程序得用到SDK(Software Development Kit),里面包含的你所需要的工具来开发,测试,运行和调试你的应用程序,Xcode是一个强大的IDE(Integrated Development Environment,集成开发环境)),它提供了基本的编辑,编辑和调试功能等等。

        2.框架

        应用程序是由编写的代码和 Apple 提供的框架组成。框架包含方法资源库,供您的应用程序调用。多个应用程序可同时访问一个框架资源库。您开发的应用程序都会链接多种框架。您可以通过框架的应用编程接口 (API) 来利用框架。API(已发布在头文件中)指定可用的类、数据结构和协议.Apple 编写的框架,预计了您可能想要实现的基本功能。使用框架既省时省力,又可确保代码高效、安全。系统框架是访问底层硬件的唯一途径。

        2.1什么是框架

        框架是一个目录,包含了共享资源库,用于访问该资源库中储存的代码的头文件,以及图像、声音文件等其他资源。共享资源库定义应用程序可以调用的函数和方法。

        每个框架都属于 iOS 系统的一个层。每个层都建立在它的下层之上。尽可能使用较高级的框架,而非较低级的框架。较高级的框架向较低级的结构提供面向对象的抽象。

ios开发基础知识

        1)Core OS 和Core Services两个层主要是包含一些底层的框架。例如访问文件,低级数据结构,这些都是用c语言来实现的。

        2)Media层比较高级。某些部分是c语言的框架。某些部分是基于Objective-C(苹果开发所使用的程序语言)的框架。像图片的绘制、音频视频文件的处理等,都是这个层的任务。正如其名字一样,可以很清楚的了解到这一层的作用。

        3)Cocoa Touch层的大部分技术都是用Objective-C语言实现的。这层提供的是编程时最常用的基本类。该层包含的Foundation framework(基础框架),提供最常用的数据结构、网络操作、文件管理等功能,与UIKit framework(界面工具包框架)并称为iOS开发的灵魂框架。当然,还有其他一些框架,如照片工具、硬件特征等,也是这个层所包含的。

        2.2 iOS开发的基本框架

        上面提到了Cocoa Touch层及其包含的两个iOS开发的灵魂框架。下面我们了解下两个框架的作用以及包含的类集合。

ios开发基础知识

        2.2.1 UIKit框架

        UIKit框架主要与用户界面相关,提供基础结构,用于在屏幕上绘图、处理事件,以及创建通用用户界面元素。一般以UI开头的类都属于这个框架。

        使用 UIKit:

  •         构建和管理用户界面
  •         处理基于触摸和运动的事件(也是和用户界面相关的)
  •         显示文本和网页内容
  •         优化应用程序以实现多任务
  •         创建自定用户界面元素

        UIKit主要包含以下:

ios开发基础知识

图片来源:iPhone开发入门很简单(书籍)

        2.2.2 Foundation框架

        应用程序以及 UIKit 和其他框架,都建立在 Foundation 框架的基础结构之上。Foundation 框架提供许多基本的对象类和数据类型,使其成为应用程序开发的基础。它还制定了一些约定(用于取消分配等任务),使您的代码更加一致,可再用性更好。

ios开发基础知识

图片来源:iPhone开发入门很简单(书籍)

        2.3如何将其他框架链接到项目中来:

        应用程序中还可以使用许多其他框架。决定要使用一个尚未包含的框架时,请将该框架添加到项目,以便应用程序可以链接到它。

        打开一个项目,在“Targets”列表中,点按你的工程,以便向其添加框架。点按项目编辑器顶部的“Build Phases”。点按展示三角形,打开“Link Binary With Libraries”部分。点按添加按钮 (+) 添加框架。从列表中选择框架,并点按“Add”。

ios开发基础知识

        点击add添加,会弹出对话框。

ios开发基础知识

        2.3代码与框架:

        您为 iOS 或 OS X 开发应用程序时,不会是完全孤立的。您将沿用 Apple 和其他人的劳动成果,沿用他们在 Objective-C 框架中开发和收集的类。框架是运行时可供多个进程共享的类资源库;它包含支持采用该资源库进行软件开发的资源。Cocoa 和 Cocoa Touch 框架,为您提供了一组相互依赖的类,它们共同工作,以构成应用程序的一部分(通常是相当重要的一部分)。

        应用程序由事件驱动:

        通过考虑应用程序启动时会发生什么,可以一窥您编写的代码和框架代码之间的关系。基本上,应用程序建立一组核心对象,然后将控制权移交给这些对象。随着程序的运行,越来越多的对象会被创建,但是程序最初所需的,却只是足以处理初始任务的结构(即足够的核心对象网络)。有两个主要任务:

  •             绘制应用程序的初始用户界面
  •             处理用户与该用户界面互动时收到的事件。

        初始用户界面显示在屏幕上之后,应用程序由外部事件驱动。最重要的外部事件源自用户(例如轻触按钮)。操作系统将这些事件及其相关信息一起报告给应用程序。该应用程序(由您的代码和框架代码组成)处理事件,并相应地更新用户界面。

        应用程序获取事件,并做出响应(通常是绘制部分的用户界面),然后等待下一个事件。应用程序不断获取事件,一个接一个,只要用户或其他源(例如计时器)发起事件。从应用程序启动到终止,它所做的几乎所有事情,都是由用户的操作,以事件的形式来驱动。

        获取事件和对事件做出响应的机制,就是主要事件循环。在应用程序的一组核心对象中,有一个对象(即全局应用程序对象)负责管理主要事件循环。它获取事件,将事件分派给该对象或能最好地处理事件的对象,然后获取下一个事件。下图说明了 iOS 中 Cocoa Touch 应用的主要事件循环。

ios开发基础知识

        3.设计模式    

        设计模式是一个抽象工具,用于面向对象的软件开发,以及其他领域。它是一个设计模板,在特定背景中,解决一般性的、重复出现的问题。因此,设计模式是一种针对特定的、具体的设计的准则:在某种意义上,它是模式的“实例化”。在如何应用设计模式上,有一定的灵活性,通常例如程序设计语言和现有架构等事物,会影响如何应用模式。

        最重要的设计模式:模型-视图-控制器

        “模型-视图-控制器”(Model-View-Controller) 设计模式,通常被称为“MVC”,将以下一种角色分配给应用程序中的对象:“模型”、“视图”或“控制器”。模式不仅定义了对象在应用程序中扮演的角色,还定义了对象之间通信的方式。这三类对象的每一个,都由抽象边界与其他对象分隔,穿过这些边界与其他类型的对象进行通信。应用程序中某一 MVC 类型的对象的集合,有时统称为层,例如模型层。

        它们之间的关系如下图:         

ios开发基础知识

        模型对象:

        模型对象封装了应用程序的数据,并定义操控和处理该数据的逻辑和运算。用户在视图层中所进行的创建或修改数据的操作,通过控制器对象传达出去,最终会创建或更新模型对象。模型对象更改时(例如通过网络连接接收到新数据),它通知控制器对象,控制器对象更新相应的视图对象。

           视图对象:

        视图对象是应用程序中用户可以看见的对象。视图对象知道如何将自己绘制出来,并可能对用户的操作作出响应。视图对象的主要目的,就是显示来自应用程序模型对象的数据,并使该数据可被编辑。尽管如此,在 MVC 应用程序中,视图对象通常与模型对象分离。

        控制器对象:

        在应用程序的一个或多个视图对象和一个或多个模型对象之间,控制器对象充当媒介。控制器对象因此是同步管道程序,通过它,视图对象了解模型对象的更改,反之亦然。控制器对象还可以为应用程序执行设置和协调任务,并管理其他对象的生命周期。

        由上面的图我们也可以得到它们之间的运行方式:

        控制器对象解释在视图对象中进行的用户操作,并将新的或更改过的数据传送给模型对象。模型对象更改时,一个控制器对象会将新的模型数据传达给视图对象,以便视图对象可以显示它。视图对象通过应用程序的控制器对象,了解模型数据的更改,并通过控制器对象,将用户发动的修改(例如,在文本栏输入的文本),传达到应用程序的模型对象。用户在视图层中所进行的创建或修改数据的操作,通过控制器对象传达出去,最终会创建或更新模型对象。模型对象更改时(例如通过网络连接接收到新数据),它通知控制器对象,控制器对象更新相应的视图对象。

继续阅读