• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

使用Swift从头开始创建iOS:探索iOS SDK

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

开发本机iOS应用程序时,对iOS SDK的良好理解至关重要。 它不仅可以帮助您选择正确的工具来解决特定的问题,还可以确保您不会迷失在SDK包含的数十种框架中。 在本文中,我们放大了iOS体系结构,并找出了在幕后推动iOS应用程序发展的因素。

什么是iOS SDK?

我非常确定,即使是几位经验丰富的iOS开发人员,也很难用一句话来定义iOS SDK。 首字母缩写SDK代表软件开发套件 iOS SDK包含用于开发本机iOS应用程序的工具和资源,这意味着该SDK使开发人员能够在模拟器以及物理设备上开发,安装,运行和测试应用程序。

支持本机iOS应用程序的两个驱动力是Swift(或Objective-C)和本机iOS系统框架。 在之前的文章中,我们探讨了Swift编程语言。 在本文中,我想探讨支持本机iOS应用程序的框架。

这包括高级框架,例如UIKitMap Kit框架,还包括与硬件紧密相关的框架,例如AccelerateCore Location框架。

什么是本地iOS应用程序?

您现在知道什么是iOS SDK,但是什么使应用程序符合本机iOS应用程序的条件呢? 一个简单的答案是,iOS应用程序是在iOS设备上运行的应用程序。 不过,那只是事实的一半。 在Safari中运行的Web应用程序呢?

iOS应用程序是为iOS平台开发的Cocoa应用程序。 大。 什么是可可应用程序? 可可应用程序很难定义。 是应用程序编写所使用的语言吗? 并不是的。 它是构建Cocoa应用程序的工具吗? 不需要。无需Xcode即可开发Cocoa应用程序。

Apple将Cocoa应用程序定义为由最终从NSObject继承的对象组成的应用程序, NSObject是在Foundation框架中声明的根类,并且与Objective-C运行时紧密集成。

在本文中,我想重点介绍用于创建本机iOS应用程序的框架。 如果您想了解更多有关Swift也使用的Objective-C运行时的信息,建议您阅读Apple的《 Objective-C运行时参考》或阅读《 Objective-C运行时编程指南》

Foundation框架提供了第二个根类NSProxy 但是,您很少(如果有的话)在您的任何项目中使用它。

iOS架构

与Safari中运行的Web应用程序的另一个区别是,本机应用程序直接与iOS操作系统和iOS的本机系统框架进行交互。 操作系统充当应用程序与基础硬件之间的中介。 这种中介或抽象的主要优势在于,本机应用程序无需担心将来的硬件更改或设备规格。

操作系统向本地应用程序提供有关硬件功能(设备是否有摄像头?)和设备规格(应用程序是否在iPhone或iPad上运行)的必要信息。

iOS体系结构可以分为四个不同的层:

  • 可可粉
  • 媒体
  • 核心服务
  • 核心操作系统

这种分层的体系结构说明了这种抽象级别,其中更高层的层更抽象,而较低层的层更基础,并且与硬件紧密相关。 不用说,较高层的某些功能依赖于较低层。

Apple建议尽可能使用较高级别的框架,因为它们通常是较低级别框架的面向对象的抽象。 换句话说,较高级别的层通过较低级别的层与硬件间接交互,而较低级别的层本来就更复杂。 当然,如果较高级别的框架不能满足您的需求,那么仍然可以使用较低级别的框架。

提醒一下,框架是一个目录,其中包含动态共享库和与之相关的资源,例如头文件,图像等。框架是对各种系统接口(如iOS通讯录,设备的目录)的访问点。相机胶卷和音乐库。

可可触摸层

在上一篇文章中,我写了有关Cocoa Touch及其与Swift和Objective-C的关系的文章。 在本文中,我想从更实用的角度讨论Cocoa Touch。 应用程序如何依赖于Cocoa Touch层? Cocoa Touch在iOS架构中的作用是什么?

Cocoa Touch层是iOS体系结构的最顶层。 它包含本机iOS应用程序依赖的一些关键框架,其中最突出的是UIKit框架。

可可触摸层定义了基本的应用程序基础结构,并提供了许多重要技术,例如多任务处理和基于触摸的输入。

如前所述,iOS应用程序严重依赖UIKit框架。 如果未将本机iOS应用程序与UIKit和Foundation框架链接,则它们将无法运行。

UIKit框架(简称UIKit)是针对iOS平台量身定制的。 OS X平台有一个等效的框架,即Application Kit框架或AppKit UIKit为事件驱动的图形化iOS应用程序提供了基础结构。 它还照顾到特定于iOS平台的其他核心方面,例如多任务处理,推送通知和可访问性。

Cocoa Touch层为开发人员提供了大量高级功能,例如自动版式,打印,手势识别器和文档支持。 除了UIKit,它还包含Map Kit,Event Kit和Message UI框架等。

有关Cocoa Touch层的所有框架的完整列表,请参考Apple的iOS技术概述指南。

媒体层

图形,音频和视频由媒体层处理。 该层包含许多关键技术,例如Core Graphics,OpenGL ES和OpenAL,AV Foundation和Core Media。

媒体层包含大量框架,包括用于访问设备上存储的照片和视频的资产库框架,用于通过滤镜进行图像处理的Core Image框架以及用于2D绘图的Core Graphics框架。

查看Apple的iOS技术概述指南,以获取媒体层所有框架的完整列表。

核心服务层

核心服务层负责管理本机iOS应用程序使用的基本系统服务。 Cocoa Touch层的某些功能取决于Core Services层。 核心服务层还提供了许多必不可少的功能,例如块对象,Grand Central Dispatch,应用内购买和iCloud存储。

最受欢迎的核心服务层之一是ARC或自动引用计数 ARC是编译器级别的功能,于2011年与iOS 5一起发布。ARC简化了Objective-C中的内存管理过程。

内存管理是本系列中未涉及的主题,但是在开发Cocoa应用程序时,了解内存管理的基础很重要。 自动引用计数是一个很好的补充,但是了解ARC为您所做的工作很重要。

您可以在使用Objective-C编程中阅读有关内存管理的更多信息,我强烈建议您这样做。

Foundation框架(简称Foundation)是iOS和OS X应用程序的另一个基本框架。 在下一篇文章中,我们将更详细地探讨该框架。 Foundation框架不仅仅是有用的类的集合,例如NSArrayNSDictionaryNSDate

Foundation提供了NSObject根类,该类提供了通往Objective-C运行时的基本接口,并且还引入了一些范例,例如对象所有权的策略。 像Core Foundation(参见下文)一样,Foundation使不同的库和框架可以轻松共享数据和代码。

核心服务层的另一个重要框架与基础框架紧密相关,是基于C的核心基础框架,简称核心基础。 像Foundation框架一样,它使各种库和框架可以共享数据和代码。

Core Foundation具有称为免费桥接的功能 ,该功能可将Cocoa对象替换为功能参数中的Core Foundation对象,反之亦然。

有关Core Services层的所有框架的完整列表,请参考iOS技术概述指南。

核心操作系统层

这三个较高层提供的大多数功能都建立在Core OS层及其低层功能上。 Core OS层提供了一些框架,您的应用程序可以直接使用这些框架,例如Accelerate和Security框架。

出于明显的安全原因,Core OS层还封装了应用程序无法访问的内核环境和低级UNIX接口。 但是,通过基于C的libSystem库,可以直接访问许多底层功能,例如BSD套接字,POSIX线程和DNS服务。

文献资料

开发本机iOS应用程序时,最接近的盟友是与iOS SDK捆绑在一起的文档。 在大多数情况下,该文档非常出色,它可以帮助您轻松完成新技术或框架的开发。

即使可以在线获取文档,大多数开发人员仍使用Xcode随附的文档浏览器。 在Xcode 7中,可以通过从Xcode的“ 窗口”菜单中选择“ 文档和API参考”来找到文档浏览器。

由于您将广泛使用本文档,因此,您可能需要学习一些捷径以在文档中找到所需内容。 正如我在上一段中提到的,文档浏览器使您可以轻松访问文档。 要快速访问文档,请在Xcode中按Command + Shift + 0

在开发过程中,每次需要查找符号(例如类,方法或结构)时,在代码编辑器和文档浏览器之间来回切换很快就会变得很麻烦。

有两种解决方案可以有效地浏览文档。 每当您将光标放在Xcode的代码编辑器中的类或方法名称上时,右侧栏中的快速帮助检查器都会显示相应符号的摘要。 摘要包含几个有用的链接,这些链接带您进入文档浏览器。


因为在代码编辑器中工作时通常会隐藏右侧边栏,所以我使用了另一种方法来显示类或方法的文档。 每当您按下Option键并将鼠标悬停在符号上时,光标就会变为问号,并且该符号会突出显示。

通过单击带有问号的符号,将弹出一个新窗口,其中包含与“ 快速帮助”检查器相同的摘要。 单击窗口中的链接之一,将带您到文档浏览器。 这是在代码编辑器和文档浏览器之间切换的快速便捷的方法,尤其是在使用两个监视器时。


结论

您现在应该对iOS SDK和iOS体系结构的各个层都有很好的了解。 iOS应用程序的两个核心框架UIKit和Foundation是本系列下两期的重点。

这些框架不仅对于每个iOS应用程序都是必不可少的,而且还包含许多在开发本机iOS应用程序时经常使用的类。

如果您有任何问题或意见,可以将其留在下面的评论中,或通过Twitter与我联系。

翻译自: https://code.tutsplus.com/tutorials/ios-from-scratch-with-swift-exploring-the-ios-sdk--cms-25154


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[Swift]LeetCode480.滑动窗口中位数|SlidingWindowMedian发布时间:2022-07-13
下一篇:
Swift中的Tuple类型发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap