在 Swift 中使用 Objective-C 類
如果你有要使用的現有類,請執行步驟 2 ,然後跳到步驟 5 。 (在某些情況下,我必須在舊的 ObjC 檔案中新增一個明確的
#import <Foundation/Foundation.h
)
第 1 步:新增 Objective-C 實現 - .m
將 .m
檔案新增到你的類,並將其命名為 CustomObject.m
第 2 步:新增橋接標頭
新增 .m
檔案時,你可能會遇到如下提示:
單擊是 !
如果你沒有看到提示或意外刪除了橋接標題,請在專案中新增一個新的 .h
檔案,並將其命名為 <#YourProjectName#>-Bridging-Header.h
在某些情況下,特別是在使用 ObjC 框架時,你不會顯式新增 Objective-C 類,Xcode 也無法找到連結器。在這種情況下,建立如上所述命名的 .h
檔案,然後確保在目標的專案設定中連結其路徑,如下所示:
注意
最好使用 $(SRCROOT)
巨集連結你的專案,這樣如果你移動專案,或者使用遠端倉庫與其他人一起工作,它仍然可以工作。$(SRCROOT)
可以被認為是包含 .xcodeproj 檔案的目錄。它可能看起來像這樣:
$(SRCROOT)/Folder/Folder/<#YourProjectName#>-Bridging-Header.h
第 3 步:新增 Objective-C 標頭 - .h
新增另一個 .h
檔案,並將其命名為 CustomObject.h
第 4 步:構建 Objective-C 類
在 CustomObject.h
#import <Foundation/Foundation.h>
@interface CustomObject : NSObject
@property (strong, nonatomic) id someProperty;
- (void) someMethod;
@end
在 CustomObject.m
#import "CustomObject.h"
@implementation CustomObject
- (void) someMethod {
NSLog(@"SomeMethod Ran");
}
@end
第 5 步:向 Bridging-Header 新增類
在 YourProject-Bridging-Header.h
:
#import "CustomObject.h"
第 6 步:使用你的物件
在 SomeSwiftFile.swift
:
var instanceOfCustomObject: CustomObject = CustomObject()
instanceOfCustomObject.someProperty = "Hello World"
println(instanceOfCustomObject.someProperty)
instanceOfCustomObject.someMethod()
無需顯式匯入,這就是橋接頭的用途。