向《Swift与Cocoa框架开发》作者Paris Buttfield-Addison提问!

Posted 图灵访谈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向《Swift与Cocoa框架开发》作者Paris Buttfield-Addison提问!相关的知识,希望对你有一定的参考价值。

Paris Buttfield-Addison是的联合创始人、移动应用工程师,以及游戏设计师。是一家游戏开发公司,他们既为自己开发游戏,也为别人开发游戏,他们致力于使技术变得简单又有趣。制作的游戏包括ABC Play School, Art Maker以及Play Time。



Paris拥有计算学博士学位,同时也是一位历史学士。他之前作为产品经理为硅谷的Meebo公司工作,这家公司在2012年被Google收购。他撰写了一系列关于ios和游戏开发的技术书,其中包括《学习Objective-C与Cocoa框架》,《iOS游戏开发攻略》,,以及《Unity移动游戏开发》。


从Objective-C到Swift


最初的Macintosh计算机主要用C语言编程,使用一个名为Toolbox(工具箱)的库。苹果公司收购NeXT Computer公司以后,用Max OS X替换了它的操作系统,Toolbox也被Cocoa代替,Cocoa是用Objective-C程序设计语言编写的。


Objective-C与其主要竞争者C++的设计时间大体相同。这两门语言都是C程序设计语言的后代,而且都是面向对象的程序设计语言。这就是说,C语言中的函数和数据结构是独立的,而像C++和Objective-C这样的面向对象语言则将相关的函数和数据合并到对象中。例如,一个名为Car的对象可能包含有关其颜色、速度及开门个数的信息,可能还包含了像drive、stop和openDoor这样的函数。数据与处理数据的函数之间存在着紧密的联系,因而我们可以将软件看作模块化工具的集合,而不是单个大型实体。


Objective-C是一门功能非常强大的语言。它与C++的主要区别是它是一种动态语言。在任何一门面向对象的语言中,都需要将函数绑定到它们处理的具体数据,而这一绑定要么在编译代码时进行(静态绑定),要么在运行时进行(动态绑定)。C++使用静态绑定,这会提高运行时性能,但降低了灵活性。Objective-C采用动态绑定,它要稍慢一些,但大大增强了语言的灵活性。


然而,Objective-C也有自己的问题。因为它是以C语言为基础的,所以它从父语言那里继承了大量古怪的特性,比如预处理器和指针运算(这里只举两例)。这些功能尽管非常强大,但会降低代码的可读性和安全性。苹果公司在保持Objective-C的现代化方面做得非常出色,但即使是这门语言的死忠粉(本书的作者们认为自己就属于这一群体)也认为这门语言有些过时了。


于是Swift应运而生了。Swift是一门新的语言,旨在让iOS和Mac应用程序的开发变得更轻松、更快速、更安全。它的设计目标是更容易掌握,且在防范程序员错误方面比Objective-C做得更好;事实上,苹果公司将它描述为“没有C的Objective-C”。因为Swift是用LLVM(Objective-C使用的工具集)生成和编译的,而且使用了Objective-C运行时,所以我们可以编写一个同时使用C、Objective-C和Swift的App。


Swift有大量现代的程序设计语言特性,包括泛型、类型推理、类型安全、闭包、元组和自动内存管理等。Swift是一门发展中的语言,会随着时间发生变化,但它是苹果平台软件开发的未来!在本书中,我们将学习如何在现实情景中使用Swift,如何利用iOS和OS X中的特性让你的App富有吸引力。


最终入选问题的提问者,将获得图灵社区送出的图灵电子书一本。




对话国外知名技术作者

讲述码农精彩人生

你听得见他们,他们也听得见你


长按图片关注图灵访谈

www.ituring.cn

欢迎参与访谈问题有奖征集活动

阅读原文:Cocoa开发工具

以上是关于向《Swift与Cocoa框架开发》作者Paris Buttfield-Addison提问!的主要内容,如果未能解决你的问题,请参考以下文章

★免费获得图书★——《Swift与Cocoa框架开发》

Swift 命令行程序中的 CFRunLoop

带有嵌入库的 Cocoa Touch Framework Swift

从 swift cocoa touch 框架导入 jwt

开源框架 RSA_Swift

构建纯 Swift Cocoa Touch 框架