簡介

  • 特點(diǎn)
    (1)優(yōu)于OC,快速,安全
    (2)取消了預(yù)編譯指令包括宏定義(OC用的太多了)
    (3)取消了OC指針和不安全訪問的使用(看不到星星了)
    (4)舍棄 Objective-C 早期應(yīng)用 Smalltalk 的語法,全面改為點(diǎn)語法
    (5)3.0中對Foundation框架做了很多改變,去除了NS,將絕大部分class轉(zhuǎn)換成struct結(jié)構(gòu)體(為了考慮性能和安全性,絕大部分使用結(jié)構(gòu)體來代替以前的類,但是在實(shí)際使用感覺不到)
    (6)可以使用現(xiàn)有的 Cocoa 和 Cocoa Touch 框架
    , 以前是OC調(diào)UIKit,現(xiàn)在就是Swift調(diào)UIKit,這點(diǎn)事沒問題的
    (7)Swift因?yàn)檎Z法的嚴(yán)謹(jǐn)性可以讓很多錯誤提前遇到,這樣很少出現(xiàn)bug讓程序停在main導(dǎo)致無法找到
    (8)@UIApplicationMain是程序的入口
    (9)只有.h沒有.m
    (10)所有的代碼都包括在{}里,默認(rèn)方法func都有縮進(jìn)!
    (11)語法的allocinit替換成()

  • PlayGround
    (1)可以看蘋果官方自帶的tips和100個tips,都在Placground來使用

  • 基礎(chǔ)點(diǎn)
    (1)不適用self. 在閉包或者編譯器提示的時候再使用
    (2)分號是用來分割語句的,如果一行洗很多,就可以加分號,一般時候可以不加
    (3)#function打印執(zhí)行的函數(shù)
    (4)添加標(biāo)記用到// MARK: - 選擇,如果是接下來要做的可以用// TODO:和// FIXME:這些非常有用

一、常量和變量

定義

  • let 定義常量,一經(jīng)賦值不允許再修改

  • var 定義變量,賦值之后仍然可以修改
    常量和變量的細(xì)節(jié)

  • 使用 : 類型,僅僅只定義類型

  • 常量有一次設(shè)置的機(jī)會

  • 應(yīng)該盡量先選擇常量,只有在必須修改時,才需要修改為 var

// 定義常量并且直接設(shè)置數(shù)值let x: Int = 10// 常量數(shù)值一經(jīng)設(shè)置,不能修改,以下代碼會報錯// x = 30let y: Int// 常量有一次設(shè)置的機(jī)會,以下代碼沒有問題,因?yàn)?nbsp;`y` 還沒有被設(shè)置數(shù)值y = 10// 一旦設(shè)置之后,則不能再次修改,以下代碼會報錯,因?yàn)?nbsp;`y` 已經(jīng)被設(shè)置了數(shù)值// y = 50print(x + y)// 變量設(shè)置數(shù)值之后,可以繼續(xù)修改數(shù)值var z: Intz = 100z = 200print(x + y + z)

自動推導(dǎo)

Swift 能夠根據(jù)右邊的代碼,推導(dǎo)出變量的準(zhǔn)確類型
只有相同類型的值才能夠進(jìn)行運(yùn)算

// 整數(shù)默認(rèn)的類型是 Intlet intValue = 200// 小數(shù)的默認(rèn)類型是 Doublelet doubleValue = 10.5// 如果要對不同類型的數(shù)據(jù)進(jìn)行計(jì)算,必須要顯式的轉(zhuǎn)換print(intValue + Int(doubleValue