真正从「长远角度」看,学习 Objective-C 还是 Swift 语言其实很不重要。
Swift 刚发布的时候有人说「这下所有人都回到零起点了」,实际上是外行的一个常见的误解。Objective-C / Swift 和 iOS 开发是两个不同的概念,这点希望你清楚。前者仅仅是一门编程语言,而后者则包括了编程思想、Cocoa 框架的使用,甚至交互设计规范、界面设计规范等 iOS 开发所需的一整套东西,并且绝大部分是和语言无关的。从学习的角度看,大部分时间你将花在学习 后者上,而具体语言和语法只占很小的比例。Objective-C 和 Swift 虽然语法上差异很大,但是背后的思想以及所依托的类库都是相同的。关于 iOS 应用开发你能想到的绝大多数问题,例如:
•一个应用的代码是从哪里开始执行的?
•如何建立一个按钮,并实现用户点击这个按钮之后调用一个函数?
•如何修改一个标签的文字?
•如何控制系统发出声音或者播放视频?
•如何检测设备的朝向?
它们的答案都取决于 Cocoa 框架如何使用,而非具体采用的语言是什么——你关注的应该是背后的「我该做什么,为什么要这么做」,而不是简单的「具体怎么去写」——不同语言仅仅是一个写法不同而已,手册和网络上都可以查到,用多了自然掌握。
因此,对于一个已经掌握了 Objective-C 和 iOS 开发的人,迁移到 Swift 是几天就可以搞定的;而对于一个掌握了 Swift 和 iOS 开发的人,迁移到 Objective-C 也不会很困难。
至于选择哪个语言,我想说 Swift 代替 Objective-C 肯定是有原因的,必须承认 Objective-C 的很多语法的确很怪很繁杂(Objective-C 的啰嗦是出了名的),可能对编程语言的初学者不太友好,Swift 接受起来会稍微容易一些。但另一个事实是,目前 Swift 的文档、教程和代码还比较少,并且大部分都是关于语法的。虽然有一两个官方文档是关于如何从 Objective-C 切换到 Swift 的,也有一些 Swift 的示例代码,但和 iOS 开发这个庞大的体系比起来,覆盖面仍然很窄。这对于已经掌握 Objective-C 的开发者不是问题,但是对于什么都不会的初学者,看过 Swift 的文档之后能写一个类似 C 的控制台应用程序出来,但是很难写一个你自己想要的完整可用的 iOS App 出来。因此,基于你的情况,我还是倾向于推荐从 Objective-C 开始学起。
关于学习流程,建议以实践为主,看书为辅。可以先找本书了解下 Objective-C 的基本语法(我当时看的是这本:Objective-C基础教程 (豆瓣)),然后看 Apple 的官方教程来入门:马上着手开发 iOS 应用程序:介绍。等你把这个教程的内容基本上理解了,就开始尝试自己开发一个小程序,从最简单的视图开始,然后开始使用 table view,可以尝试模拟一下 iOS 中「设置」应用的界面。最重要的参考资料其实是 Apple 的官方文档(iOS Dev Center)。这里特别要表扬一下 Apple 的文档,写的还是很不错的,非常清楚详细。个人感觉看这些文档就足够了;如果你需要,可以再单独买一本书,比如我买了这本:Beginning iOS 7 Development: Exploring the iOS SDK: Jack ...。注意,各个 iOS 版本的 API 略有不同,目前来说最好选择对应 iOS 7 的教程。等你把 table view 完全用会了,剩下的就不需要我教了。
在这期间,你会遇到无数的问题和错误,你想做的很多事情书上是没有的,这时候要求助于网络。果断抛弃百度吧,直接用英文 Google 搜索,注意 Stack Overflow 里面的问题和回答。Stack Overflow 是一个程序员的问答社区,水平非常高(如果你有一个账号并且积分比较高,在很多国外公司的面试中甚至都是有加分的),基本上这一阶段你能遇到的所有问题在这里都能找到不错的答案。
分享到:
相关推荐
Using Swift with Cocoa and Objective-C (Swift 4) EN.epub 去除 DRM
这儿的运行时系统扮演的角色类似于Objective-C语言的操作系统,Objective-C基于该系统来工作。本文档将具体介绍NSObject类以及Objective-C程序是如何和运行时系统交互的。特别地,本文档还给出来怎样在运行时动态地加
Using Swift with Cocoa and Objective-C (Swift 4),equb格式,非pdf格式,导入ibooks中观看,解决中国区用户无法下载文档的问题
C语言主要知识点巩固(学习Objective-C 的前提),PPT格式。
iOS和macOS性能优化:Cocoa、Cocoa Touch、Objective-C和Swift(英文版)
iSwift 是一款Mac上实用的Objective-C转换Swift代码工具,可以方便的将Objective-C代码转换为Swift代码,修复了大量问题,增加了Core Foundation等库,iSwift支持直接拖拽文件,简单易用,很实用的一款开发辅助工具...
希望这篇文章能够帮助已经有Objective-C经验的开发者更快地学习Swift。同时也品味到Swift的精妙之处。 结论放在开头: 我认为Swift比Objective-C更优雅,更安全同时也更现代,更性感。 文章组织脉络: 从Objective-C到...
Playgrounds for Objective-C (also Swift).zip,Better playgrounds that work both for Objective-C and Swift
希望这个简单的Objective-C语言教程能够为你提供一个入门的起点。Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写...
Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...
《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...
《Objective-C 程序设计(第4版)》作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,因此,初学者和有经验的程序员都可以使用这本《Objective-C 程序设计(第4版)》学习Objective-C。...
Using Swift With Cocoa and Objective-C中文版,OC和Swift混合使用
用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计...
elcome to Learn Objective- C on the Mac! This book is designed to teach you the basics of the Objective- C language. Objective- C is a superset of C and is the language used by many (if not most) ...
我认为抛开Objective-C单独谈论Swift是不准确的。因此我们先从Objective-C谈起。Objective-C语言是编写iOS/Mac程序的主要语言。编写iOS/Mac程序,除了Objective-C,还可以混合使用C/C++,另外也可以嵌入一些脚本语言...
iOS 和 macOS 性能优化书。iOS and macOS Performance Tuning Cocoa, Cocoa Touch, Objective-C, and Swift
Runtime Code Injection for Objective-C & Swift.zip,Runtime Code Injection for Objective-C & Swift
Swift的使用,官方原版pub格式文档,Using Swift with Cocoa and Objective-C(Swift4.0.3)
Objective-C 基础教程,从入门到精通 Objective-C 基础教程,从入门到精通,是你学习 Objective-C 的经典之作。