《從零開始學Swift》學習筆記(Day 70)——Swift與Objective-C混合編程之Swift與Objective-C API映射php
原創文章,歡迎轉載。轉載請註明:關東昇的博客編程
Swift與Objective-C API映射微信
在混合編程過程當中Swift與Objective-C調用是雙向的,因爲不一樣語言對於相同API的表述是不一樣的,他們之間是有某種映射規律的,這種API映射規律主要體如今構造函數和方法兩個方面。函數
1、構造函數映射學習
在Swift與Objective-C語言進行混合編程時,首先涉及到調用構造函數實例化對象問題,不一樣語言下構造函數表述形式不一樣,如圖是蘋果公司官方API文檔,描述了NSString類的一個構造函數。網站
Swift構造函數除了第一個參數外,其它參數的外部名就是選擇器對應部分名。規律的其它細節圖中已經解釋的很清楚了,這個規律反之亦然,這裏再也不贅述。atom
2、方法名映射spa
在Swift與Objective-C語言進行混合編程時,不一樣語言下方法名錶述形式也是不一樣的,如圖是蘋果公司官方API文檔,描述了NSString類的rangeOfString:options:range:方法。.net
選擇器第一個部分rangeOfString做爲方法名,通常狀況下Swift方法第一個參數的外部參數名是要省略的,「_」符號表示省略。以後的選擇器各部分名(如:options和range),做爲外部參數名。除了參數名對應爲,參數類型也要對應下來。設計
Swift 2.0以後方法能夠聲明拋出錯誤,這些能拋出錯誤的方法,不一樣語言下方法名錶述形式如圖下圖所示,是writeToFile:atomically:encoding:error:蘋果公司官方API文檔。
比較兩種不一樣語言,咱們會發現error參數在Swift語言中再也不使用,而是在方法後添加了throws關鍵字。
這種映射規律不單單隻適用於蘋果公司官方提供的Objective-C類,也適用於本身編寫的Objective-C類。
歡迎關注關東昇新浪微博@tony_ 關東昇。
關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程信息
更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com
智捷課堂論壇網站:http://51work6.com/forum.php