IOS 应用开发
一、Swift简述
1.1初识Swift
Swift是苹果在WWDC 2014所发布的一门语言,用于开发IOS的OS X应用程序。
2010年7月LLVM编译器的原作者苹果开发工具部门总监克里斯·拉特纳开始着手开发Swift语言,一直到到2014年6月才发布
苹果宣称Swift的特点是:快速、现代、安全和具有交互性
Swift的处理速度非常快。Swift比Objective-c快1.4倍,比python快3.9倍。
在很多语法特性上Swift和一些脚本确实非常相似。但是,在应用程序开发中,Swift不是以一门脚本语言来运行的,所有的Swift代码都会被LLVM编译为本地代码,然后以极高的效率运行。
Swift和Objective-c都是类型安全的语言,变量和方法都有明确的返回,并且变量在使用前需要进行初始化。而在语法方面,Swift迁移到了业界公认的非常先进的语法体系,其中包含了闭包、多返回和大量的函数式编程的理念,函数终于可以作为变量保存了。初步看来,Swift语法上借鉴了Ruby的很多人性化设计,但借助苹果自己手中强大的LLVM编译器,在性能上必然要甩开Ruby很远。
从另一方面说,Swift的代码又是可以通过交换来解释执行的。Xcode6加入了所谓的Playground功能来对开发者输入Swift语句。这里之所以把“解释”两个字打上双引号,是因为即使在命令行工具交互地执行Swift语句。
1.2了解Playground
本书使用Xcode 6 beta4 作为开发工具,与之前发布的beta1版本相比,beta4对Swifit语言做了大幅修改。开发者可以使用Swift来编写更好、更安全的应用程序,而且新版本的Swift也修正了许多开发者提出的请求,尤其是对数组进行了重新设计。但是beta版本毕竟不同与正式版,依然存在着许多Bug。
1.2.1Playground的编辑器模式
Playground是什么呢?它是xcode6中引入的一种文档类型,在该文档类型的文件中封装了一些有用的东西,其中包括全部的swift代码。swift代码会在playground环境中实时运行,并且只要我们在playground中编辑swift代码,就会马上自动显示结果。swift文档也能包含一个文件夹,里面可以内嵌那些供代码使用的资源。
例如:
在上诉代码中,首先定义了变量string,然后通过加号将3个字符串链接并赋值给它。
变量string是String类型,当我们生命常量或变量的时候,通过加上类型标注来说明常量或变量中要存储的类型。方法是在常量或变量名后面加上一个冒号和空格,再加上类型名称。之前的声明语句也可以写成下面这样。
var string: String = "hello" + " " + "world"
除了数字类型时间轴中还可以显示字符串、颜色和图像类型。当我们使用println函数的时候,在时间轴上还会显示控制控制台输出项目。
当时间轴中有太多的Value History项目,想要收起某个临时不用想吗点,点击该项目顶端的表达式即可。
在当前swfit代码的结尾处添加下面的代码:
let color = UIColor.blueColor()
2.创建第一个项目
(1)打开xcode工具,选择File-》New-〉Project
(2)选择“single View Application”,并点击“next”,创建一个简单实例app应用
(3)输入项目名,公司名称、公司标识前缀名
3.项目目录
Hellow World
Hellow WorldTests
Hellow WorldUITests
Products
一个项目总共有以上四个项目,
3.1Hellow World目录
从目录中可以看出总共有6个文件,AppDelegate.swift、ViewController.swift、
Main.storyboard、Assets.xcassets、LaunchScreen.storyboard、Info.plist。
3.2打开main.storyboard,默认看到一个简单的空白应用界面,大小为平板界面大小。如果开发都只需要开发兼容iphone手机的app,那么可以把Use Auto Layout的勾选去掉
二、Swift基本语法
如果创建的是OS X playgroud 需要引入Cocoa,例如
import Cocoa
var myString = “Hello World!”
print(myString)
如果我们想要创建IOS playground则需要引入UIKit
import UIKit;
var myString = “Hello,World!”
print(myString)
标识符
标识符就是给变量、常量、方法、函数、枚举、结构体、类、协议等指定名字。构成标识符的字母均有一定的规范,Swift语言中标识符的命名规则如下:
区分大小写,Myname与myname是两个不同的标识符;
标识符首字符可以以下划线(_)或者字母开始,但不能是数字;
标识符中其他字符可以是下划线(_)、字母或数字;
例如:userName、User_Name、sys_val、hign等为合法的标识符,而2mail、room#和class为非法标识符。
swift空格
Swift空格并不是箱c/C++,Java那样完全忽视空格,Swift对空格的使用有一定的要求,但又不像Python对缩进的要求那么严格。在Swift中,运算符不能直接跟在变量或常量的后面。
let a = 1 + 2
打印输出
Swift使用print函数打印输出:
print("Runnable")//输出
print函数是一个全局函数,完整的函数签名为:
public func print(items:Arry...,separator:String = defualt, Iteminator: String default)
如果我们箱让其不换行输出,只需要
print("\(x)",terminator: "")
接收用户的输入可以使用readLine()
三、Swift数据类型
3.1内置数据类型
Int
一般来说,你不需要专门指定整数的长度。Swift提供了一个特殊的整数类型Int,长度与当前平台的原生字长相同。
在32位平台上,Int和Int32长度相同。
在64位平台上,Int和Int64长度相同。
UInt
Swift也提供了一个特殊的无符号UInt,长度与当前平台的原生字长相同:
浮点数:Float、Double
浮点数是有小数不法的数字,比如3.1415,0.1和-23.5
浮点类型笔整数类型表示的范围更大,可以存储比Int类型更大或者更小的数字。Swift提供两种有符号浮点数类型:
Double表示64位浮点数。当需要存储很大或者很高精度的浮点数时请用此类型。
Float表示32位浮点数。精度邀请不高的话可以使用此类型
布尔值:Bool
Swift有一个基本的布尔类型,叫做Bool。布尔值指逻辑上的值,因为它们只能是真或者假。Swift有两个布尔常量,true和false。
字符创:String
字符串是字符的序列集合,例如:
“Hello world”
字符Character
字符指的是单个字母:
“C”
可选类型Optional
使用可选elixir来处理值可能缺失的情况。可选类型表示有值和没有值:
数值范围
下表显示了不同变量类型内存的存储空间,及变量类型的最大最小值:
类型别名
typealias newname = type
例如以下定义了Int的类型别名为Feet:
typealias Feet = Int
import Cocoa
typealias Feet = Int
var distance: Feet = 100
print(distance)
类型安全
Swift是一个类型安全的语言。
由于Swift是类型安全的, 所以它会在编译你的代码时进行类型检查,并把不匹配的类型标记为错误。这可以让你在开发的时候尽早发现并修复错误。
import Cocoa
var varA = 42
varA = “This is hello”
print(varA)