swift入門-day01

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 語言
  • 可使用現有的 CocoaCocoa 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

  1. 從4月份開始,蘋果提供的資料已經沒有 OC 的了,這說明蘋果推進 Swift 的決心
  2. OC 源自於 smalltack-c,迄今已經有 40 多年的歷史,雖然 OC 的項目還會在將來持續一段時間,可是更換成 Swift 是將來必然的趨勢
  3. 如今不少公司都注重人才儲備,若是會Swift,就業會有很大的優點,簡歷中若是寫上會 Swift,雖然面試中雖然不會怎麼被問到,但對於薪資提高有很大幫助,同時能夠從另一個側面證實咱們是有自學能力的人,這是全部企業都須要的
  4. Swift 裏面融合了不少其餘面嚮對象語言的思想,不像OC那麼封閉,學會 Swift,再轉其餘語言會輕鬆不少
  5. 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
相關文章
相關標籤/搜索