swift工程中調(diào)用OC語言的庫
創(chuàng)建swift工程
image.png
情況1??(自動(dòng)創(chuàng)建橋接文件的情況)
創(chuàng)建一個(gè)OC的語言文件
image.png
系統(tǒng)提示是否需要一個(gè)橋接頭文件龄捡,因?yàn)橄到y(tǒng)的暫時(shí)還沒有。選擇創(chuàng)建。
橋接頭文件
此時(shí)自動(dòng)創(chuàng)建了橋接頭文件
image.png
(但是其中文件是空的韵丑。)
在其中引入需要橋接的OC文件侯谁。
image.png
(使用兩種引入都行,選擇其中一種)
可以在swift中直接調(diào)用了
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let obj : NewObject=NewObject.init()
return true
}
(這樣創(chuàng)建橋接文件堡称,系統(tǒng)里已經(jīng)幫我們?cè)O(shè)置好了路徑瞎抛。檢查這個(gè)路徑:工程->TARGETS
, 在輸入框里輸入bridging,你會(huì)看橋接路徑)
情況2??(手動(dòng)創(chuàng)建橋接文件的情況)
手動(dòng)創(chuàng)建一個(gè).h文件(名字固定)
創(chuàng)建一個(gè),Command+N
却紧。iOS
->Source
->Header File
文件桐臊。這個(gè)文件的命名規(guī)則最好是:"項(xiàng)目名+bridging+Header.h"
image.png
手動(dòng)設(shè)置路勁
Swift Compiler - Code Generation
->Objective-C Bridging Header
,填寫“項(xiàng)目名/橋接文件名”晓殊。
也可以直接將文件拖入断凶。
OC工程中調(diào)用swift語言
創(chuàng)建一個(gè)OC項(xiàng)目
image.png
創(chuàng)建swift文件
image.png
(此時(shí)依舊會(huì)問是否創(chuàng)建頭文件)
在OC中使用swift
只需要引入頭文件即可
#import "AppDelegate.h"
#import "OC中調(diào)用swift-swift.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
NewObject*obj=[[NewObject alloc]init];
return YES;
}
#import "OC中調(diào)用swift-swift.h"
其中OC中調(diào)用swift
是項(xiàng)目名字-Swift.h
是固定寫法。(其中項(xiàng)目名中如果有中劃線-
在import
變?yōu)橄聞澗€_
)