您的位置:首页 > 移动开发 > Swift

Swift基础

2015-08-19 23:52 696 查看

Swift 简介

WWDC 2014年6月3号 苹果开发者大会 发布,2010年7月开始开发

基于 C 和 Objective-C语言,使用现有的Cocoa和Cocoa Touch框架,无缝兼容C、Objective-C语言

兼具编译语言的高性能(Performance)和脚本语言的交互性(Interactive)

支持Playground,它允许程序实时预览,无需频繁创建和运行App

简洁、安全、容易、灵活、高效

开发环境要求

Mac OS X系统 10.9.3及更高版本

1、官方文档(The Swift Programming Language)

https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-XID_399

2、应用程序 iBooks 免费下载地址

https://itun.es/cn/jEUH0.l

第一个应用程序

输出Hello World!

println("Hello,   World ")


1、注释格式

单行注释

// 单行注释


多行注释

・Swift 多行注释可以嵌套,这点和其他语言不一样, 很实用的一个功能

/*
//单行注释格式
/*多行注释格式*/
*/


分号

・单个语句后面无需加分号,加了也行

・多个语句放在一行,需要加分号

2、常用数据类型

Int:Int8、Int16、Int32、Int64

UInt:UInt8、UInt16、UInt32、Uint64

Double

Float

Bool

Character

String

Optional(可选类型)

3、变量

・值可以根据需要不断修改的量称为变量

・使用var声明变量

var Variable = 42

4、常量

・值不能够被二次修改的量称为常量

・使用let声明常量、

let co unt=12

5、类型推导:

・编译器在编译的时候 通过提供的初始化值 自动推导出 特定的表达式的类型

var myVariable = 42 //编译器会自动推断其类型为Int

var int : Int = 10 //显示声明类型,语法:”变量 : 类型名

6、命名规则

Swift中可以使用几乎任何字符来作为常量和变量名(包括Unicode),但不能含有数字符号、箭头、横线、制表符,不能以数字开头

var π=3.14

var dog=“狗”

var ��=”狗”

var 狗=”狗”

7、整数表现形式

- 二进制数:前缀为Ob

- 八进制数:前缀为Oo

- 十六进制数:前缀为Ox

let decima=Ob10001

8、类型别名

・使用typealias关键字定义类型别名,类似typedef

typealias NSInteger = Int   //给Int取个别名叫NSInteger
typealias   NSInteger   =valuevalue   :   NSInteger


9、布尔类型

var   tigerIsAnimal   :   Bool   =   true
var   animalIsTiger   =   false


10、数组与字典

Array 数组

・使用[]操作符声明数组

emptyArray1 = []

let   emptyArray2   =   String[]()   //声明空数组,限定了值的类型为String
var   shoppingList   =   ["catfish",   "water",   "tulips",   "blue   paint"]
println(shoppingList.count)
println(shoppingList[1])
shoppingList[1]   =   "bottle   of   water"
println(shoppingList[1])


11、Dictionary 字典

・使用[key:value]操作符声明字典

let   emptyDictionary1   =   [:]
let   emptyDictionary   =   Dictionary<String,   Float>()
var   occupations   =   [
"Malcolm":   "Captain",
"Kaylee":   "Mechanic",
]
println(occupations["Malcolm"])
occupations["Jayne"]   =   "Public   Relations"
println("The   occupations   count   is   "   +   String(occupations.count))


12、元组(tuple)

元组可以将任意数据类型组装成一个元素

元组在作为函数返回值的时候特别适用,可以为函数返回更多的信息

元组创建

let   (x,   y)   =   (1,   2)
let   http404Error   =   (404,   "Not   Found")         //由一个Int和一个字符串String组成
let   (statusCode,   statusMessage)   =   http404Error


元组访问方式

直接访问

通过key访问value,类似 Dictionary

序号访问方式,序号从0开始

属性访问方式,点语法

13、可选类型 Optional

可选类型:这个值要么存在,并且等于x;要么根本不存在。

(变量名\常量名: 类型?)

var   serverResponseCode:   Int?   =   404      //?的意思是   要么存在,且值为404;要么值不存在,为nil
/*由于toInt⽅方法可能会失败,因此它会返回⼀一个可选的Int类型,⽽而不同于Int类型。⼀一个可选的Int类型被记
为Int?不是Int。问号表明它的值是可选的,可能返回的是⼀一个Int,或者返回的值不存在。*/
let   convertedNumber:   Int?=possibleNumber.toInt()


14、nil

Swift 的nil不同于Object-C中的nil。Object-C中,nil是一个指针指向不存在的对象。

Swift中,nil不是指针而是一个特定类型的空值。任何类型的可选变量都可以被设为nil,不光是指针。

nil 不能用于非可选类型

15、解包( !的用法)

可选类型在每次访问的时候 都会提取并检测它的值是否存在,但有时候根据程序结构 就可以推断 可选量在首次赋值后 必然存在值,这时候,就不需要每次验证值是否存在,

如果确定一个可选量的值一定存在,那么我们使用 进行解包获取它的值,或者使用

Optional Binding。

let   possibleString:   String?   =   "An   optional   string."
println(possibleString !)   //   解包,我确定possibleString的值一定存在,不需要每次验证值
let   stringValue   =   possibleString! .hashValue         //解包,这⾥里的 表⽰示“我确定这里的的
possibleString⼀定是⾮非nil的。

//Optional   Binding,等价于上⾯面⼀行
if   let   value   =   possibleString{
let   stringValue   =   value.hashValue}


16、隐式解包的可选类型

隐式解包可选类型 当成自动解包的可选类型。即不是每次使用的时候 在变量、常量后面加 ,而是直接在定义的时候加 这些可选量定义为隐式解包的可选量(implicitly unwrapped optional)。

・隐式解包的可选量的声明格式为:在希望标为可选的类型名称后面,用感叹号 (!) 代替

问号 (?)。

・隐式解包的可选类型主要用在一个变量/常量在定义瞬间完成之后值一定会存在的情况。

主要用在类的初始化过程中。

//把 隐式解包可选类型 当成对每次使用的时候⾃动解包的可选类型。即不是每次使⽤用的时候 在变量/常量后面

加 ,而是直接在定义的时候加

let assumedString: String! = “An implicitly unwrapped optionalstring.”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: