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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...