选择Objectiv-C合适Swift?

转载 2015年11月17日 22:32:25
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 是一个程序员的问答社区,水平非常高(如果你有一个账号并且积分比较高,在很多国外公司的面试中甚至都是有加分的),基本上这一阶段你能遇到的所有问题在这里都能找到不错的答案。

作者:Renfei Song
链接:http://www.zhihu.com/question/24304009/answer/27366121
来源:知乎

objectivcec基本认识与输出

1  框架概念:每一个框架都是一个重要的技术集合,通常包含数十个甚至上百个的头文件。每一个框架都有一个主头文件。通过使用#import导入头文件,就可以使用框架的所有属性。 2  objectiveC...
  • u013087513
  • u013087513
  • 2015-08-07 21:19:35
  • 350

Objectiv-C语法

1.Object-C中,BOOL的值为YES(1)/NO(0),C中是真(非零)/假(零)。2.”%@”---格式化I/O, cocoa的字串NSString。Objective-c中,只要看到@符号...
  • luteresa
  • luteresa
  • 2017-03-29 10:55:59
  • 95

Swift 2.3 【这些情况下guard要慎用】

guard 语法的可读性更强。 它可以让我们的方法表意更加明确,更易于阅读,它能够表达“提前退出”的意图,提高了程序的健壮性。 换句话来理解这是 Swift 的设计者在暗示程序员在编写代码时时提早 r...
  • Felicity294250051
  • Felicity294250051
  • 2016-01-16 10:54:32
  • 701

swift 关于CocoPods问题

Podfile 文件内容为 platform :ios, ‘9.0’ target "自己的项目名" do pod 'Alamofire', '~> 4.4.0' end ...
  • jq2530469200
  • jq2530469200
  • 2017-03-30 18:36:57
  • 212

多媒体编程——编译libmp3Lame for ios armv7

修改前面几个参数就可以了
  • yangyk125
  • yangyk125
  • 2014-07-24 12:30:28
  • 1143

IOS 地区选择器(swift版本) AreaPickerView_swift

AreaPickerView_swiftareapicker in china, easy to use. 中国的地区选择器.简单易用.之前的地址选择器都是网上找的,但是网上的第三方,功能很多,看起来...
  • ch_quan
  • ch_quan
  • 2017-01-28 20:37:08
  • 1792

Swift 3.0 相机拍照,相册选择照片

1.准备工作在info.list Privacy - Camera Usage Description//访问相机 Privacy - Photo Library Usage Descri...
  • C_calary
  • C_calary
  • 2016-11-20 18:37:10
  • 5416

Swift-->从相册(摄像头)选择照片,图片选择

一个APP,选择照片是很常用的功能,作为Swift上路的菜鸟, 记录路上的点点滴滴.看效果:(MAC 原生截图,真JB大…我还特意用了小屏幕的iPhone4s…还是很大….) 界面部分不好说, 文章...
  • angcyo
  • angcyo
  • 2016-08-17 23:18:06
  • 1879

合适的人,做合适的事

记得看过一个讲座,老师讲,有的人所谓的企业管理,就是不停给人升职,不停的把合适的人调到不合适的位置上去,直到这个人撑不下去,失败了。     前段时间,流行一句话,叫“升职加薪,迎娶白富美,...
  • xingfaming
  • xingfaming
  • 2017-02-04 14:41:35
  • 285

软件工程之开发模型及其选择

四种开发模型: 瀑布模型的特点: 各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需要的工作内容 原型模型的特点: 快速建立起来的可以在计算上运行的程序,它所能完成的...
  • nishiwodeangel
  • nishiwodeangel
  • 2013-08-03 14:22:08
  • 1229
收藏助手
不良信息举报
您举报文章:选择Objectiv-C合适Swift?
举报原因:
原因补充:

(最多只允许输入30个字)