iOS 8开发入门--序言(2)

Swift Playgrounds

在2014年,苹果公司的世界开发者大会上,苹果推出了让所有iOS开发惊讶的新的编程语言Swift。Swift被宣传为“快速,现代,安全,交互”编程语言。Swift语言简单易学并且拥有很多提高编程效率的特征。


在Swift语言推出之前,iOS app主要由Objective-C语言编写。苹果公司选择这门语言作为Mac和iOS开发的主语言已经有20多年时间了。我和很多iOS开发人员交流过。他们中的大部分都认为Objective-C不易学习并且语法怪异。简而言之,Objective-C 代码吓到了不少开始学习iOS编程的初学者。Swift编程语言的发布可能就是苹果公司对这些评论的一种答复。Swift的语法更加整洁并且容易阅读。从Swift的beta版本发布我就开始使用它编程。我想说,你肯定会认同使用Swift开发会更有效率。Swift确确实实加速了开发进程。一旦你习惯了使用Swift编程,你将不再愿意再使用Ojbective-C。

在我看来,Swift将会吸引更多的网络开发人员开发App。如果你是一名具有某种脚步语言编程经验的网络开发人员,你的经验将会帮助你更好的掌握iOS开发知识。对你来说Swift学习将会很简单。即使你完全没有编程经验也没有关系,你会发现这门语言很友好并且使用Swift开发app感觉非常自然。

让我们通过对比以下程序片段,初步了解一下Swift语言。

第一段代码是由Objective-C编写的,而第二段代码是由Swift编写的。你喜欢哪种语言呢?我猜想你会更喜欢Swift,特别是你会觉得Objective-C的语法非常怪异。常量和变量是编程语言中最基本的两个元素。在Objective-C中,当你声明一个常量或者变量时,你需要指明类型信息,比如integer或者string。对于Swift,引入了一种新的功能,名叫类型推断(Type inference)。你不再需要说明变量或者常量的类型信息。你只需要使用let说明常量和使用var说明变量即可。Swift足够智能,可以通过检查你提供的值来推断类型。

你可能注意到了另外一个不同:Swift省略了队尾的分号。在Objective-C,你在句尾梳写分号。如果你忘记了分号,将会编译错误。很多Objective-C的初学者都经历过这种错误。Swift语言会让你的开发更加简单。Swift增加了许多强力特征让你的编程工作更加流畅。正如你在上面的例子中看见的,String(字符串)的维护更加简单。在Objective-C中,你需要选择NSString和NSMutableString类型来暗示该String是否可以背修改。在Swift中你不必这样做。无论什么时候你将一个字符串String声明为变量,在你的程序里你都可以修改这个字符串。连接字符串非常简单。只要使用+号就可以连接两个字符串。更进一步,Swift允许你直接使用==符号对比字符串。

学习编程最好的方法就是直接写程序。Xcode 6新增了一个功能叫做Playgrounds。这是一个交互式开发环境,开发者可以在该环境里实验编程并且可以直接看到程序运行结果。假设你安装了Xcode 6(或者以上),运行Xcode,你会看到如下开始界面。


Playground是一种特别类型的Xcode文件。你只需要点击“Start with a Playground”,然后在弹出的界面填写项目名和选择平台类型。你可以使用默认的名字或者自己命名,但记得需要选择iOS平台。


一旦你确认并保存信息文件完毕,Xcode将会打开如下Playground交互界面。你会在屏幕中看到在屏幕的左边面板,是你编辑代码的界面。


当你在左边输入代码时,Playground将立即解释你的代码并在右侧面板显示结果。默认情况下,Playground包含两行代码。你可以在右侧面板立刻看到“Str”声明的结果。

我们一起来写一些代码。这个练习的目的是让你初步接触一下Swift编程并且对Xcode有个初步的印象。在讲述过程中我将会解释一部分代码。但是即使你看不懂任何一行代码也没有关系,特别是你还是一个新手的话。我想你会对一些术语比如:类,方法等感到困惑 。现在,不要多想,全身放松地去使用Xcode。我们将再后面的章节介绍这些概念 。

让我们马上开始。

首先,让我们看一下两行代码的关键字。这里我们又定义了两个变量


当你输入上面的代码时,你马上可以在右侧的面板上看到结果

让我们继续增加下面的代码

message1 .uppercaseString

Xcode的编辑器会弹出一个自动完成功能。自动完成功能是一项非常友好的能够帮助你快速完成代码的功能。一旦你输入“mess”,你将会看到一个自动完成窗口,里面会给出一些基于你的输入的一些建议。这时你需要做的就是选择“message1”并且敲击回车。


Swift使用点(.)语法来实现方法调用或者访问变量的属性。当你在message1后面输入点时,自动完成窗口会再一次弹出。里面会列出一系列属于该变量的方法或者属性。你可以继续输入“uppercaseString”或者从自动完成窗口选择。

一旦你完成输入,你可以立刻在输出窗口看到结果。当你使用UppercaseString属性,message1的内容将会自动

转换成大写。

继续输入以下代码


Swift允许你使用+号连接两个字符串(String)。上面这行代码将message2的内容转换成小写,

并且和另一个string连接在一起。更有趣的是,你可以在你的代码中包含emoji字符图形。你可能会问如何在MaxOS中输入emoji字符。很简单,按下control+command+spacebar(控制+命令+空格键),就会出现emoji图形选择窗口。

让我们继续输入下面的代码片段:


条件逻辑在编程中非常常见。有时候,当某个添加满足时你想执行某一段确定的代码。if-else语句是Swift提供的控制流方法之一。在这段代码中,我们使用==操作符对比了message1和message2。如果它们相等,程序会打印出“Same message”。否则,将会打印出“Not the same message”。你将会在你的屏幕中看到如下结果。


让我们做一点更有趣的事情,例如创建一个标签(label),这在用户界面中非常常见:


这里我们使用内建的UILabel 类创建了一个label并且设置它的大小为300*50。我们把它的text属性设置为

message1.为了在Playground中预览UI元素,你可以点击快速查看(Quick Look)或者历史值(Value History)图标。快速查看功能通过一个弹出窗口显示label。如果你使用历史值(Value History),则Playground会打开一个独立的预览面板


刚才的label是一个毫无特色的label。改变它的颜色应该是个不错的想法。不错的是,你只需要一行代码就可以定制颜色。你还可以很容易的中间对齐文本或者将label设置成圆角。输入如下代码你将会看到一个橘黄色的圆角label。


这就是iOS SDK的强大能力。它里面包含了成千上万的预定义的元素,并且开发人员只需要很少的代码就可以定制这些元素。


要说一下,不要被我误导了。一般来说创建用户界面你不需要输入代码。Xcode提供一个叫Storyboard(故事板)的功能,你可以通过拖拽来设计UI。我们将会再下一章讲述。

所以你现在对Swift已经有初步概念了。你现在感觉Swift怎么样呢?喜欢它吗?我希望你能感觉到Swift非常容易学习和使用。最重要的是,我希望Swift不会让你不再想开发app。下一章,你将会学到如何创建你的第一个app。

专题目录:

IOS 8 开发入门--序言(一)

IOS 8 开发入门--序言(二)

第一章:创建你的第一个App(一)

第一章:创建你的第一个App(二)

第二章:使用Storyboard设计用户界面(一)

第二章:使用Storyboard设计用户界面(二)

第三章 Hello World App 浅述(二)

第四章 自动布局(一)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容