作为新手,长远地看,该学习 Objective-C 还是 Swift?

真正从「长远角度」看,学习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的控制台应用程序出来,但是很难写一个你自己想要的完整可用的iOSApp出来。因此,基于你的情况,我还是倾向于推荐从Objective-C开始学起。

关于学习流程,建议以实践为主,看书为辅。可以先找本书了解下Objective-C的基本语法(我当时看的是这本:Objective-C基础教程(豆瓣)),然后看Apple的官方教程来入门:马上着手开发iOS应用程序:介绍。等你把这个教程的内容基本上理解了,就开始尝试自己开发一个小程序,从最简单的视图开始,然后开始使用tableview,可以尝试模拟一下iOS中「设置」应用的界面。最重要的参考资料其实是Apple的官方文档(iOSDevCenter)。这里特别要表扬一下Apple的文档,写的还是很不错的,非常清楚详细。个人感觉看这些文档就足够了;如果你需要,可以再单独买一本书,比如我买了这本:BeginningiOS7Development:ExploringtheiOSSDK:Jack...。注意,各个iOS版本的API略有不同,目前来说最好选择对应iOS7的教程。等你把tableview完全用会了,剩下的就不需要我教了。

在这期间,你会遇到无数的问题和错误,你想做的很多事情书上是没有的,这时候要求助于网络。果断抛弃百度吧,直接用英文Google搜索,注意StackOverflow里面的问题和回答。StackOverflow是一个程序员的问答社区,水平非常高(如果你有一个账号并且积分比较高,在很多国外公司的面试中甚至都是有加分的),基本上这一阶段你能遇到的所有问题在这里都能找到不错的答案。

相关推荐