資料介紹
一。 Swift和Objective-C的聯系
1》 Swift與Objective-C共用同一套運行時環境
我們編寫程序,讓程序運行起來,被機器執行的代碼并非全部是由我們自己來編寫的。需要同時運行很多預先寫好的支持性的代碼,才能讓我們自己的代碼運行起來。程序并非單獨存在的,運行時處在一定的環境當中。我總聯想到很多小螞蟻在泥土上面爬,而我自己寫的程序只是其中的一只。
Swift跟Objective-C編譯出的程序代碼運行在同一套運行環境上面。Swift的類型可以橋接到Objective-C的類型,反之亦然。Swift編寫的代碼可以調用Objective-C編寫的代碼,反之也一樣。
Objective-C之前積累下來的大量類庫,實現不用改寫Swift就可以直接調用。
一。 Swift比Objective-C有什么優勢?
1》, Swift 容易閱讀
不再需要行尾的分號,以及 if/else 語句中圍繞條件表達式的括弧。另外就是方法的調用不再互相嵌套成中括號[[[ ]]]。Swift 中的方法和函數的調用使用行業內標準的在一對括弧內使用逗號分隔的參數列表。這樣做的結果就是一種帶有簡化了句法和語法的更加干凈有表現力的語言。
2》, Swift 更易于維護
Swift 丟掉了對著兩個文件的要求。 Xcode編譯器可以自動計算出以來并執行增量構建。如此,將頭文件 同實現文件相分離。把 Objective-C 頭文件(.h) 和實現文件 (.m) 合并成了一個代碼文件 (.swift)
3》, Swift 更加安全
Swift代碼中的可選類型使得一個nil可選值的可能性變得非常的明確, 這意味它能在你寫下一段糟糕的代碼時會生成一個編譯器錯誤。 這就建立了一種短程反饋的循環,可以讓程序員帶著目標去寫代碼。 問題在代碼被寫就時就可以被修復, 這大大節省了你要在修復有關來自 Objective-C 指針邏輯的bug時需要耗費的時間和金錢。
4》, Swift 代碼更少
Swift 減少了重復性語句和字符串操作所需要的代碼量。在 Objective-C 中, 使用文本字符串將兩塊信息組合起來的操作非常繁瑣。Swift 采用當代編程語言的特性,比如使用“+”操作符將兩個字符串加到一起
Swift中的類型系統減少了代碼語句的復雜性--作為編譯器可以理解的類型。比如,Objective-C要求程序員記住特殊字符標記(%s,%d,%@)并且提供了一個用逗號分隔的變量來代替每個標記。Swift支持字符串插入,這就消除了需要記住的標記和允許程序員直接插入變量到面向用戶的字符串中
5》, Swift 速度更快
刪除遺留下來的C語言約定大大提升了引擎蓋之下Swift的性能, 進行計算密集型任務的性能上,Swift已經逼近C++的表現, 將近是OC運行速度的1.4倍。
總結: 使用 Swift,程序員只要維護原來一半量的代碼文件,手動的代碼同步工作為零,標點輸入出錯的概率也遠遠低于以前 -- 這樣就能騰出更多的時間寫高質量的代碼。通過使用可選類型 —— 一種針對返回或不返回值的編譯時安全機制,而返回值是同步操作、網絡失效時無效的用戶輸入以及數據驗證錯誤發生時普遍會遇到的問題。ARC 在 Swift 中對過程式 C 風格的代碼,還有蘋果公司 Cocoa 框架使用的面向對象代碼都進行了統一。
二。 Swift的內存管理是怎樣的?
Swift 使用自動引用計數(Automatic Reference Counting, ARC)來簡化內存管理, 這種內存管理方式相比GC而言,對程序員的要求較高, 并且ARC比GC更容易引起編程錯誤,但卻比GC快。尤其在性能很重要的場合。
三。 Swift 支持面向過程編程嗎?
- IOS面試寶典之ob<x>jective-C語言 0次下載
- IOS開發教程之ob<x>jective-C的十個面試題和解答資料免費下載 0次下載
- VC++程序開發范例寶典之InternetSetTime 2次下載
- VC++程序開發范例寶典之DomainName 2次下載
- VC++程序開發范例寶典之BackUpAccess 2次下載
- VC++程序開發范例寶典之ServerSocket 2次下載
- VC++程序開發范例寶典之database 2次下載
- VC++程序開發范例寶典之ServerDlg-Server 3次下載
- VC++程序開發范例寶典之RemoteClose-Client 15次下載
- VC++程序開發范例寶典之ServerDlg 10次下載
- VC++程序開發范例寶典之modview 4次下載
- VC++程序開發范例寶典之deletenode 4次下載
- 程序員面試寶典 0次下載
- 程序員面試寶典(pdf清晰版) 0次下載
- 程序員面試寶典下載(pdf電子書)
- RA MCU眾測寶典 | IIC之【RA2E1】IIC通信的OLED顯示 159次閱讀
- 硬件面試(一) 1.1k次閱讀
- 硬件工程師經典面試題詳解 2.2k次閱讀
- 關于數組常見的面試題 2.3k次閱讀
- C語言與C++面試知識點總結 2.4k次閱讀
- 常見的MySQL高頻面試題 3k次閱讀
- java常見數據結構面試 1.1w次閱讀
- 如何準備算法工程師的面試需要知道哪些知識技能 6k次閱讀
- 機器學習入門寶典《統計學習方法》的介紹 5.3k次閱讀
- Google公司的面試題和詳細的分解過程 4.8k次閱讀
- 這里有份Python面試攻略,請簽收! 3.4k次閱讀
- 大數據面試最新16經典問題分享 2.2k次閱讀
- Swift 2無人機模塊化設計解決方案 1.8k次閱讀
- Google AI 面試20道試題攻略 1.1w次閱讀
- 編程面試的 9 大算法概念 4.7k次閱讀
下載排行
本周
- 1冷柜-電氣控制系統講解
- 13.68 MB | 4次下載 | 10 積分
- 2直流電路的組成和基本定律
- 1.67 MB | 2次下載 | 免費
- 3西曼傳感(Siman)20米dTof激光測距傳感器模塊中文資料
- 0.41 MB | 1次下載 | 免費
- 4安川A1000變頻器中文版說明書
- 20.16 MB | 1次下載 | 3 積分
- 5丹佛斯2800系列變頻器說明書
- 8.00 MB | 1次下載 | 5 積分
- 6CH340中文手冊
- 0.14 MB | 次下載 | 免費
- 7安科瑞AMC系列多功能電表使用說明書
- 5.74 MB | 次下載 | 免費
- 8IP6824W?datasheet_cn?V1 破解版5W手表無線充
- 852.10 KB | 次下載 | 免費
本月
- 1CH341編程器軟件NeoProgrammer_2.2.0.10
- 20.47 MB | 170次下載 | 1 積分
- 22025智能家居傳感器市場分析及創新應用
- 3.11 MB | 26次下載 | 免費
- 3RV1126B系列開發板產品資料
- 4.19 MB | 18次下載 | 免費
- 4CH341編程軟件下載
- 2.50 MB | 16次下載 | 5 積分
- 5全志系列-米爾基于T153核心板開發板 四核異構、3路千兆網,賦能多元化工業場景
- 3.05 MB | 12次下載 | 免費
- 6【開源】60余套STM32單片機、嵌入式Linux、物聯網、人工智能項目案例及入門學習資源包
- 10.55 MB | 7次下載 | 免費
- 7冷柜-電氣控制系統講解
- 13.68 MB | 4次下載 | 10 積分
- 8特斯拉MODEL S車載充電機主電路回路原理圖
- 0.81 MB | 4次下載 | 3 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233094次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191448次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183356次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81604次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73824次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論