這里將使用Xcode 8.0演示Swift與OC類的相互調(diào)用
- Swift項目中調(diào)用OC類
1.首先在Swift工程中新建一個OC類進(jìn)行演示
在點擊Next-->選擇路徑
后,會提示是否創(chuàng)建一個橋接文件
注意:這個提示只會在Swift項目第一次創(chuàng)建OC類時提醒,如果點擊了Cancel
或者是Don't Create
,當(dāng)此項目再創(chuàng)建OC類時,不會提醒創(chuàng)建橋接文件
2.這里先選擇Create Bridging Header
來演示,在我們創(chuàng)建好一個OC類的同時,系統(tǒng)會自動幫我們以項目名稱-Bridging-Header
生成一個橋接文件OC_Swift-Bridging-Header.h
3.將OC類的頭文件導(dǎo)入到橋接文件中
#import "Person.h"
4.這樣就可以在Swift類中使用OC類了
lazy var person: Person = Person()
如果手動創(chuàng)建橋接文件,需要手動配置路徑(類似于PCH文件一樣)
1.創(chuàng)建橋接文件:iOS-->Source-->Header File
2.配置路徑:點擊項目-->Build Settings-->Swift Compiler - Code Generation下的Object-C Bridging Header后補(bǔ)全路徑
- OC項目中調(diào)用Swift類
1.還是在剛剛的Swift項目中,直接新建一個OC控制器類,將StoryBoard中初始控制器的身份檢測器標(biāo)識換成OC類
2.在剛剛的項目中新建一個Student
的Swift類
3.在OC類中調(diào)用Swift類,需要按照#import "項目名-Swift.h"
格式導(dǎo)入頭文件,例如:
#import "OC_Swift-Swift.h"
注意:如果項目名稱中同時包含 中文、數(shù)字和 "-" ,可能會導(dǎo)致失敗
4.這樣就可以在OC項目中使用Swift類了
Student *student = [[Student alloc] init];