Object-C作為Apple的iOS App開發語言服務了很多個年頭,2014年Apple推出了新的編程語言Swift。更高效更安全的口號再次吸引了一大批非iOS開發程序猿進入,小編覺得Swift代替Object-C僅僅是時間問題,在神州這片土地上,畢竟技術普及有些落后。但再有兩年左右時間Swift產品鏈將形成。第三方支持框架逐步完好。Swift必將成為iOS開發主流。眼下來看,激進派的現狀Swift與Object-C混合開發。
Object-C中調用Swift
以下就給大家分享下Object-C項目下怎樣使用Swift編程。
首先創建一個Object-Cproject
右擊項目名稱。在彈出的快捷菜單上點擊“New File…”菜單項。例如以下圖所看到的。在新建文件對話框中選擇點擊“Cocoa Touch Class”列表項。然后點擊“Next”button,進入下一步
3. 輸入新建類的類名,選擇須要的父類類型。切換編程語言為Swift,然后點擊“Next”,最后會出現例如以下圖所看到的的對話框,主要提示是否自己主動生成隱藏的橋街頭文件。顯然這里須要創建,點擊Create Bridging Header ,這樣一個Object-C中就創建了一個Swift類
在Swift中寫一個方法測試一下:
func SayHi()
{
print("Hello,Welcome to call me!")
}
4.在Object-C中調用時須要注意。在類中須要引入隱藏式維護頭文件
#import “項目名稱-swift.h”
詳細到我們這里就是為:
#import “BlendSO-swift.h”
5.最后就能夠放心地調用Swift類了
SwiftClass *swift=[[SwiftClass alloc]init];
[swift SayHi];
那Swift項目中怎么調用Object-C呢?事實上跟上邊比較相似
Swift中調用Object-C
首先創建一個Swiftproject
右擊項目名稱,在彈出的快捷菜單上點擊“New File…”菜單項,例如以下圖所看到的。在新建文件對話框中選擇點擊“Cocoa Touch Class”列表項。然后點擊“Next”button。進入下一步
3.輸入新建類的類名。選擇須要的父類類型,切換編程語言為Objective-C,然后點擊“Next”,最后會出現例如以下圖所看到的的對話框,主要提示是否自己主動生成顯式的橋街頭文件,顯然這里須要創建,點擊Create Bridging Header ,這樣一個Swift中就創建了一個Objective類
在新建的Objective-C中測試一下:
ObjectiveCClase.h中 @interface ObjectiveCClase : NSObject @property(nonatomic,copy)NSString *name; -(id)initWithName:(NSString *)name; -(void)SayHi:(NSString *)name; @end ObjectiveCClase.m中 -(id)initWithName:(NSString *)name { self=[super init]; self.name=name; return self; } -(void)SayHi:(NSString *)name { NSLog(@"%@說:Swift,歡迎你調用我!",name); }
4.這里跟上面不同的是須要在顯式橋接頭文件里增加Objective-C中的類的頭文件名稱,而Objective-C中不用(也沒法調呀,由於是隱式的)
5.最后在Swift中調用Objective-C的類實現OC中的功能
let objective=ObjectiveCClase(name: "Objective-C")
objective.SayHi("Objective-C")
總結一下:
Swift與Objective-C的互調在前期創建步驟基本同樣
中期都會提示生成一個橋接文件,都是第一次的時候會提示,再創建就不會再次提示,但兩者是有差別的:Objective-C中調用Swift時生成的是隱式的,而Swift調用Objective-C時是顯式的橋接文件
最后在Objective中調用Swift時須要在所在類上邊加上格式為#import “項目名稱-swift.h”的頭文件,而而Swift調用Objective-C時卻是在顯式的橋接文件里引入Objective-C的頭文件