Swift 簡介程序員
簡介面試
- Swift 語言由蘋果公司在 2014 年推出,用來撰寫 OS X 和 iOS 應用程序
- 2014 年,在 Apple WWDC 發佈
歷史編程
- 2010 年 7 月,蘋果開發者工具部門總監克里斯·拉特納開始着手 Swift 編程語言的設計
- 用一年時間,完成基本架構
- Swift 大約歷經 4 年的開發期,2014 年 6 月發佈
- 計劃在 2015 年末開源
大事件swift
- 2014 年 6 月蘋果在發佈 Xcode 6.0 的同時發佈了 Swift 1.0
- 2015 年 2 月,蘋果同時推出 Xcode 6.2 Beta 5 和 6.3 Beta,在完善 Swift 1.1 的同時,推出了 Swift 1.2 測試版
- 2015 年 6 月,蘋果發佈了 Xcode 7.0 和 Swift 2.0 測試版,而且宣稱在年末開源
- 2015 年 9 月 15 號,正式發佈了 Xcode 7.0
從發佈至今,蘋果的每個舉措都彰顯其大力推廣 Swift 的決心安全
從發佈至今,因爲語法更迭太快,最苦逼也是收穫最大的莫過於用 Swift 開發框架的程序員們閉包
版本架構
- 正式版 2.0 Xcode 7.0.1
- 測試版 2.1 Xcode 7.1 beta 3
Swift 特點框架
- 蘋果宣稱 Swift 的特色是:快速、現代、安全、互動,並且明顯優於 Objective-C 語言
- 可使用現有的 Cocoa 和 Cocoa Touch 框架
- Swift 取消了 Objective-C 的指針及其餘不安全訪問的使用
- 捨棄 Objective-C 早期應用 Smalltalk 的語法,全面改成句點表示法
- 提供了相似 Java 的名字空間(namespace)、泛型(generic)、運算對象重載(operator overloading)
- Swift 被簡單的形容爲 「沒有 C 的 Objective-C」(Objective-C without the C)
Swift 現狀編程語言
- 目前國內有些公司的新項目已經直接採用 Swift 開發
- 目前不少公司都在作 Swift 的人才儲備
- 應聘時,會 Swift 開發無疑會增長自身籌碼
爲何要學習 Swift?ide
- 從4月份開始,蘋果提供的資料已經沒有 OC 的了,這說明蘋果推進 Swift 的決心
- OC 源自於 smalltack-c,迄今已經有 40 多年的歷史,雖然 OC 的項目還會在將來持續一段時間,可是更換成 Swift 是將來必然的趨勢
- 如今不少公司都注重人才儲備,若是會Swift,就業會有很大的優點,簡歷中若是寫上會 Swift,雖然面試中雖然不會怎麼被問到,但對於薪資提高有很大幫助,同時能夠從另一個側面證實咱們是有自學能力的人,這是全部企業都須要的
- Swift 裏面融合了不少其餘面嚮對象語言的思想,不像OC那麼封閉,學會 Swift,再轉其餘語言會輕鬆不少
- Swift 畢竟也是出身自蘋果,總體程序開發思路和 OC 是同樣的,等 Swift 項目講完後,你們徹底能夠用一樣的思路寫出 OC 的來,並且在翻寫的過程當中,可以對不少本來忽略的 OC 基本功有很大的增強和改善
建議
- Objective-C & Swift 對比學習可以對蘋果底層的不少實現原理有更加深入的體會
- 項目課程結束後,建議用 Objective-C 重寫項目
項目體驗
目標
- 熟悉 Swift 的基本開發環境
- 與 OC 開發作一個簡單的對比
代碼實現
// Created by 王月
// Copyright © wangyue. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
/*
- 沒有了.h&.m 文件 都是以.swift後綴
- 沒有了main.m文件
- Swift中 類方法使用 類名.方法名
- Swift中 若是使用其類內的屬性 不須要使用self.
- 注意: 若是在閉包中 必須使用 (閉包==block) 注意循環引用
- 省略分號
- Swift中 使用枚舉 枚舉名.枚舉值 === .枚舉值 拼人品
- 使用print 打印 其性能要比NSLog高
- Selector("buttonClick") == "buttonClick"
*/
override func viewDidLoad() {
super.viewDidLoad()
//建立一個view
let v = UIView(frame: CGRect.init(x: 0, y: 0, width: 200, height: 200))
//設置背景顏色
v.backgroundColor = UIColor.blueColor()
//建立一個button
let button = UIButton(frame: CGRect.init(x: 20, y: 20, width: 50, height: 50))
//設置背景顏色
button.backgroundColor = UIColor.redColor()
//添加點擊事件
button.addTarget(self, action: "buttonClick", forControlEvents: UIControlEvents.TouchUpInside)
//添加按鈕
v.addSubview(button)
//將v添加到當前view上
view.addSubview(v)
demo1()
}
func buttonClick (){
print("按鈕點擊了")
}
func demo1(){
let start = CFAbsoluteTimeGetCurrent()
//測試效率
for i in 0...500{
//0.0275490283966064
print(i)
//0.314741969108582
NSLog("%i", i)
}
print(CFAbsoluteTimeGetCurrent() - start)
}
}
小結
- 在 Swift 中沒有了 main.m,@UIApplicationMain 是程序入口
- 在 Swift 中只有 .swift 文件,沒有 .h/.m 文件的區分
- 在 Swift 中,一個類就是用一對 {} 括起的,沒有 @implementation 和 @end
- 每一個語句的末尾沒有分號,在其餘語言中,分號是用來區分不一樣語句的
- 在 Swift 中,通常都是一行一句代碼,所以不用使用分號
- 與 OC 的語法快速對比
- 在 OC 中 alloc / init 對應 ()
- 在 OC 中 alloc / initWithXXX 對應 (XXX: )
- 在 OC 中的類函數調用,在 Swift 中,直接使用 .
- 在 Swift 中,絕大多數能夠省略 self.,建議通常不寫,能夠提升對語境的理解(閉包時會體會到)
- 在 OC 中的 枚舉類型使用 UIButtonTypeContactAdd,而 Swift 中分開了,操做熱鍵:回車 -> 向右 -> .
- Swift 中,枚舉類型的前綴能夠省略,如:.ContactAdd,可是:不少時候沒有智能提示
- 監聽方法,直接使用字符串引發
- 在 Swift 中使用 print() 替代 OC 中的 NSLog