当我们发布了Swift语言学习课程之后,收到了很多邮件和私信来问自己是否还需要学习C或者Objective-C。此外,人们似乎还在迷惑Swift到底适合iOS开发生态中的哪些部分。通过这篇文章,我希望能扫清你的疑惑并且将你送到正确的学习轨道上。

我应该先学C/Objective-C还是直接学Swift?

Swift是一个全新的语言,与Objective-C或C都没有任何关系。我的意思是它们都是编程语言并且遵守一些基础概念和范例,但是你并不需 要在学习其中一个之前先学另一个。即使你是编程新手,你也可以学习苹果发布的官方的Swift文档而无需先学Objective-C。

我正在学习Objective-C,我应该转为学Swift吗?

这要试情况而定。如果你把学习iOS当做一个爱好或者出于好奇心才学,那么转到Swift学习上吧。如果你将从事iOS开发视为职业,那么你要知道 外面至少有100万个应用都是用Objective-C编写的,Swift于2014年才刚刚发布,所以你将来的职业的app开发仍然很有可能使用 Objective-C。所以你需要学习Objective-C来获得一个工作,直到Swift成为标准,这大概将花费数年时间。同时学习两门语言也将对 你有好处。你未来的上司甚至可能会让你来将现存的Objective-C app切换到Swift上。不过我对这个观点有所保留,因为一个应用最重要的部分是它的功能而非它使用的语言,因此重写现有app的做法可能不会流行。

我建议初学者选择Swift是因为它是一种友好的语言,并且感谢playground让它变得容易学会。一旦你学过了Swift,如果将iOS开发视为职业的话,对于学习Objective-C也将更容易理解。

最后,Swift是一种现代语言,如果你学习Swift,意味着也同时做好了面向未来的准备,因为Swift将是新一代的应用所用的语言(包括 Apple Watch上的应用)。Swift语言是苹果送给每个人的礼物。世界上还没有5年经验的Swift开发者,但如果你现在开始学习Swift,那么过了5年 你就将成为其中一位了。

我最后的建议是,不管你选择哪一门语言,学习它并且精通它。最后你将发现,只要你学会iOS SDK,使用哪种语言并不是最重要的。并且学了一种语言之后可以很容易的开始学习另一门,最紧要的是,从现在就开始学习。

文章转载自:开源中国社区 [http://www.oschina.net]

我应该直接学 Swift,还是 Objective-C?的更多相关文章

  1. 从0开始学Swift笔记整理(五)

    这是跟在上一篇博文后续内容: --Core Foundation框架 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Sw ...

  2. 从0开始学Swift笔记整理(四)

    这是跟在上一篇博文后续内容: --重写方法 重写实例方法 在子类中重写从父类继承来的实例方法和静态方法.先介绍实例方法的重写. 下面看一个示例: class Person {        var n ...

  3. 从0开始学Swift笔记整理(三)

    这是跟在上一篇博文后续内容: --Swift中相关的属性 存储属性 Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性 ...

  4. 从0开始学Swift笔记整理(二)

    这是跟在上一篇博文后续内容: --函数中参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以引用方 ...

  5. 从0开始学Swift笔记整理(一)

    Swift 是一种适用于 iOS 和 OS X 应用的全新编程语言,它建立在最好的 C 和 Objective-C 语言之上,并且没有 C 语言的兼容性限制.Swift 采用安全的编程模式,增加了现代 ...

  6. 【转】我应该直接学Swift还是Objective-C?

    (本文作者Amit Bijlani,由CocoaChina翻译) 当我们发布了Swift语言学习课程之后,收到了很多邮件和私信来问自己是否还需要学习C或者Objective-C.此外,人们似乎还在迷惑 ...

  7. 我应该直接学Swift还是Objective-C?

    当我们发布了Swift语言学习课程之后,收到了很多邮件和私信来问自己是否还需要学习C或者Objective-C.此外,人们似乎还在迷惑Swift到底适合iOS开发生态中的哪些部分.通过这篇文章,我希望 ...

  8. 那些年,学swift踩过的坑

    最近在学swift,本以为多是语法与oc不同,而且都是使用相同的cocoa框架,相同的API,但是或多或少还是有些坑在里,为了避免以后再踩,在这里记下了,以后发现新的坑,也会慢慢在这里加上 [TOC] ...

  9. 快看Sample代码,速学Swift语言(1)-语法速览

    Swift是苹果推出的一个比较新的语言,它除了借鉴语言如C#.Java等内容外,好像还采用了很多JavaScript脚本里面的一些脚本语法,用起来感觉非常棒,作为一个使用C#多年的技术控,对这种比较超 ...

随机推荐

  1. 在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行

    一.环境介绍 OS:ubuntu bionic 64bit 二.准备工作 2.1 安装必要的开发工具 sudo apt-get install git flex bison build-essenti ...

  2. 用caffe进行图片检索

    1.图片的处理 输入:将自己的图像转换成caffe需要的格式要求:lmdb 或者 leveldb 格式 这里caffe有自己提供的脚本:create_minst.sh 转换训练图片和验证图片的格式,运 ...

  3. shell case语句

    case 格式 case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac ...

  4. import 与 import static

    原文链接:https://www.geeksforgeeks.org/static-import-java/ java中的静态引用 直接解释 一般引入类的方式:import java.lang.Mat ...

  5. java final修饰变量时的一种情况

    有如下一种场景. 1.在文件PaymentConfig.java中存在如下变量public static final desc="描述" 2.类Test.java中使用了desc变 ...

  6. 『OpenCV3』处理视频&摄像头

    在opencv中,摄像头和视频文件并没有很大不同,都是一个可以read的数据源,使用cv2.VideoCapture(path).read()可以获取(flag,当前帧),对于每一帧,使用图片处理函数 ...

  7. 比较windows下的5种IO模型

    看到一个很有意思的解释: 老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系.他们的信会被邮递员投递到他们的信箱里. 这和Socket模型非常类似.下面我就以老陈接收信件为例讲解Socke ...

  8. _beginthreadex()和CreateThread()的区别

    在本例子中我们使用——beginThreadex这个函数,它和createThread的区别是: 为了方便管理,我么在使用该函数的时候可以把它的线程函数作为类成员,这也就需要在类中把该函数变成静态函数 ...

  9. zuul网关源码解析

    zuul网关源码解析 zuul请求的生命周期 ZuulServlet ZuulServlet定义了对zuul整个过程的处理,如下: public void service(javax.servlet. ...

  10. consumer filter

    ProtocolFilterWrapper中buildInvokerChain方法把Filter链在一起,调用执行的时候,逐个执行filter,最后执行filter中的invoker. //Proto ...