OC 和 swift 小結,ocswift小結

來源:互聯網
上載者:User

OC 和 swift 小結,ocswift小結

 

1 什麼是 OC 語言?

    OC 語言即物件導向語言,它擴充了 ANSI C 語言,將 SmallTalk 式的訊息傳遞機制加入到 ANSI C 中.它是蘋果 OS 和 iOS 以及相關的 API,Cocoa 和 Cocoa Touch 的主要程式設計語言.

2 OC 語言的特點:

  • 支援 C 語言文法,是 ANSI-C 語言的一個超集,是一種高效的程式設計語言.
  • 是 C 語言物件導向的擴充,完全支援物件導向的特性.
  • 簡潔易讀的編程風格,使編程和閱讀更加清晰.
  • 相容性好,可以在項目中直接匯入 C 和 C++ 的標頭檔,也可以在檔案中直接使用OC 和 C++ 編程.

3 iOS 的生態系統不僅僅指其軟體方面的豐富,更多指的是其裝置的多樣性.

4 Core OS

是用 FreeBSD 和Mach所改寫的Darwin,是開源的符合 POSIX 標準的一個 UNIX 核心.該層包含所有 iOS 的基礎功能(所有的這些功能都是通過 C 語言的 API 來提供的).另外該層具有 UNIX 特點,因此當將 UNIX 上的功能移植到 iOS 上的時候用到Core OS 的 API.同時該層還提供了硬體和系統架構之間的介面,但出於安全考慮,只有有限的架構能使用.

5 Core services

            它在 Core OS 的基礎上提供了更為豐富的功能,其中包括 Foundation.Framework 和 Core Foundation.Framework.之所以叫 Foundation 是因為,它提供了處理字串,排列,時間等基礎功能.).其中 Foundation 屬於 OC 是 API, 而 Core Foundation 屬於 C 的 API.另外 Core Sercies 還提供了Security(處理認證,密碼管理,安全性管理),Core Location(定位)SQLite(輕量級的資料庫),Address Book(處理電話本)等功能.

6 Media

            即提供映像,音樂,影片等多媒體功能.其中圖片包括2D(Quartz 2D) 和3D(Open GLES).音樂對應的模組是Core Audio 和Open AL. 影片用 Media Player來支援.最後還提供了Core Animation動畫支援.

7 Cocoa Touch

            它是 OC的 API其中最核心的部分的 UIKit.Framework,應用程式上的各種組件全部由它來提供實現.除此之外還負責多點觸摸.文字的輸出,圖片網頁的顯示,相機/檔案的存取以及加速感應的部分.

8 swift

            它繼承了 OC 的物件導向優點,同時又具有簡便的文法結構.它具有以下特點.

  • 閉包的統一
  • 元祖和多個傳回值
  • 泛型
  • 快速而簡潔的迭代範圍/集合
  • 支援的方法和擴充的協議
  • 函數式的編程模式
  • 不通過編譯即可查看效果
  • 高效強大
  • 安全

9 OC 和 Swift 之間的區別

  • Swift句末不需要加分號,除非一行中寫幾行代碼
  • Swift沒有 main 函數,函數的執行是從上往下執行.
  • Swift沒有. h 和. m 檔案只有. Swift檔案.
  • Swift沒有地址的概念
  • Swift的資料類型會自動判斷(變數用 var, 常量用let)
  • 強制類型轉換: OC的強轉à(int)a, Swift的強轉àint(a)
  • 整數的資料類型可以通過 .min 和 .max來擷取最大和最小值
  • 定義類型:OC:Typedef int Myint  Swift:Typealiaes Myint = int
  • Swift的摸除取餘運算支援小數
  • Swift中 BOOL 類型中不在是 OC 中的非0即真,而是 true 為真 false 為假
  • Swift的賦值運算沒有傳回值
  • Swift可以多對多賦值: let(x,y) = (1,2)
  • Swift的迴圈語句必須加{},就算只有一行代碼,也要加
  • Swift的 switch 語句後面可以跟任何資料類型,並且裡面不用 break

注:如果不想要break的效果 即後面的都想執行 那就寫上關鍵字  fallThrough,但在fallThrough後面就不能再定義常量變數了

10 swift 專屬的特點

  • 運算: a…b 表示[a,b]  a..<b 表示(a,b)
  • 專屬的溢出運算子:即當你賦值的時候大於其最大值範圍,則會報錯
  • Swift專屬元祖類型

Var a = (x:15,y:20.0)

其中 a 就是元祖名,裡面有兩個元素 x和 y.

取出賦值:a.x = 10或者 a.0 = 10(預設有下標)

修改類型: var a = (int,string) = (10,21.0)

列印時: printIn(a) = (10,20.0)

用底線省略不需要的元素 var a = (_,20.0)

  • Switch 語句中與元祖類型的時候,還可以用類似 SQL 陳述式的文法,添加過濾條件.
  • 函數的外部參數名

原來是形式: func Sum(num1:int,num2:int) àint{}  調用: Sum(10,20)

現在:func Sum(numOne num1:int,numTwo num2:int) àint{}

調用: Sum(numOne:10,numTwo:20)

  • 函數的預設參數值

func addPerson(name:string,age:Int = 18) à string{}

調用: addPerson(“tom”)

注:修改年齡時 addPerson(“Tom”,age:19)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.