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
- const int count = 10;
- double price = 23.55;
- NSString * firstMessage = @"Swift is awesome. ";
- NSString * secondMessage = @"What do you think?";
- NSString * message = [NSString stringWithFormat: @"%@%@", firstMessage, secondMessage];
- NSLog(@"%@", message);
Swift
- let count = 10var price = 23.55let firstMessage = "Swift is awesome. "let secondMessage = "What do you think?"
- var message = firstMessage + secondMessageprintln(message)
第一段代码是由 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。我们将再后面的章节介绍这些概念 。
让我们马上开始。
首先,让我们看一下两行代码的关键字。这里我们又定义了两个变量。
- var message1 = "Hello Swift! How can I get started?"
- var message2 = "The best way to get started is to stop talking and code."
当你输入上面的代码时,你马上可以在右侧的面板上看到结果
让我们继续增加下面的代码
message1 .uppercaseString
Xcode 的编辑器会弹出一个自动完成功能。自动完成功能是一项非常友好的能够帮助你快速完成代码的功能。
一旦你输入 "mess",你将会看到一个自动完成窗口,里面会给出一些基于你的输入的一些建议。这时你需要做的就是
选择 "message1" 并且敲击回车。
Swift 使用点(.)语法来实现方法调用或者访问变量的属性。当你在 message1 后面输入点时,自动完成窗口会再
一次弹出。里面会列出一系列属于该变量的方法或者属性。你可以继续输入 "uppercaseString" 或者从自动完成窗口选
择。
一旦你完成输入,你可以立刻在输出窗口看到结果。当你使用 UppercaseString 属性,message1 的内容将会自动转换成大写。
继续输入以下代码
- message2 .lowercaseString + " Okay, I'm working on it
Swift 允许你使用 + 号连接两个字符串(String)。上面这行代码将 message2 的内容转换成小写,
并且和另一个 string 连接在一起。更有趣的是,你可以在你的代码中包含 emoji 字符图形。你可能会问如何在 MaxOS 中输入 emoji 字符。很简单,按下 control+command+spacebar(控制 + 命令 + 空格键),就会出现 emoji 图形选择窗口。
让我们继续输入下面的代码片段:
- if message1 == message2 {
- println("Same message")
- } else {
- println("Not the same message")
- }
条件逻辑在编程中非常常见。有时候,当某个添加满足时你想执行某一段确定的代码。if-else 语句是 Swift 提供的控制流方法之一。在这段代码中,我们使用 == 操作符对比了 message1 和 message2。如果它们相等,程序会打印出 "Same message"。否则,将会打印出 "Not the same message"。你将会在你的屏幕中看到如下结果。
让我们做一点更有趣的事情,例如创建一个标签(label), 这在用户界面中非常常见:
- let messageLabel = UILabel(frame: CGRectMake(0, 0, 300 , 50))messageLabel.text = message1messageLabel
这里我们使用内建的 UILabel 类创建了一个 label 并且设置它的大小为 300*50。我们把它的 text 属性设置为 message1. 为了在 Playground 中预览 UI 元素,你可以点击快速查看(Quick Look)或者历史值(Value History)图标。
快速查看功能通过一个弹出窗口显示 label。如果你使用历史值(Value History),则 Playground 会打开一个独立的预览面板
刚才的 label 是一个毫无特色的 label。改变它的颜色应该是个不错的想法。不错的是,你只需要一行代码就可以定制颜色。你还可以很容易的中间对齐文本或者将 label 设置成圆角。输入如下代码你将会看到一个橘黄色的圆角 label。
- messageLabel.backgroundColor = UIColor.orangeColor ()messageLabel.textAlignment = NSTextAlignment.CentermessageLabel.layer.cornerRadius = 10.0messageLabel.clipsToBounds = truemessageLabel
这就是 iOS SDK 的强大能力。它里面包含了成千上万的预定义的元素,并且开发人员只需要很少的代码就可以定制这些元素。
要说一下,不要被我误导了。一般来说创建用户界面你不需要输入代码。Xcode 提供一个叫 Storyboard(故事板)的功能,你可以通过拖拽来设计 UI。我们将会再下一章讲述。
所以你现在对 Swift 已经有初步概念了。你现在感觉 Swift 怎么样呢?喜欢它吗?我希望你能感觉到 Swift 非常容易学习和使用。最重要的是,我希望 Swift 不会让你不再想开发 app。下一章,你将会学到如何创建你的第一个 app。就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: