OC 和 swift 小結

来源:http://www.cnblogs.com/xuan-yuan/archive/2016/05/26/5531375.html
-Advertisement-
Play Games

1 什麼是 OC 語言? OC 語言即面向對象語言,它擴展了 ANSI C 語言,將 SmallTalk 式的消息傳遞機制加入到 ANSI C 中.它是蘋果 OS 和 iOS 以及相關的 API,Cocoa 和 Cocoa Touch 的主要編程語言. 2 OC 語言的特點: 支持 C 語言語法,是 ...


 

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)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.下載 mysql-mysql-5.1.55-win32.zip 2. 解壓縮到任何一個目錄,最好目錄名稱不要有空格; 例如:C:\mysql 3. 刪除Embedded,include,lib,mysql-test 這四個目錄。 註:這四個目錄占了300多M,刪除後,只有不到100M。 3,在c... ...
  • 1 NSURLConnettion NSURLConnettion是 Core Foundation/CFNetwork框架 API 之上的一個抽象. NSURLConnettion是用來指代 Foundation 框架中的一系列組件: NSURLRequest,NSURLResponse,NSUR ...
  • 1.效果圖 2.源代碼 MainActivity.java public class MainActivity extends AppCompatActivity { public enum ChartType { LINE_CHART, COLUMN_CHART, PIE_CHART, BUBBL... ...
  • BaseControl按鈕合集 效果 源碼 https://github.com/YouXianMing/Animations 說明 本人一共封裝了3種按鈕的基類控制項,以上是一個示例演示,演示如何通過繼承來實現想要的效果. ...
  • Most tools require installation on your computer before you can use them. If the installation is easy, you may think that’s fine. But it can be an unn ...
  • 蘋果的規定:2016年6月1日提交到App Store必須支持IPv6-only網路。 官方說明:https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOver ...
  • ARC 和 MRC 記憶體管理 從 MRC—>ARC 就是將記憶體管理部分,從開發者的函數中轉移到函數外部的runtime 中.由於 runtime 的開發簡單,邏輯層次高,所以 runtime 的出錯幾率很小,另外由於編譯器的優化,使得運行速度很高. ARC 的特點: 不能顯示的調用 dealloc, ...
  • 報錯一: 在iOS7的真機運行時,彈出錯誤:App installation failed. There was an internal API error. 如圖 解決辦法: 在Xcode -> Target -> Build Setting 下的Packaging部分,將Product Name ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...