在 Objective-C 中使用 Swift 類
第 1 步:建立新的 Swift 類
將 .swift
檔案新增到專案中,並將其命名為 MySwiftObject.swift
在 MySwiftObject.swift
:
import Foundation
class MySwiftObject : NSObject {
var someProperty: AnyObject = "Some Initializer Val"
init() {}
func someFunction(someArg:AnyObject) -> String {
var returnVal = "You sent me \(someArg)"
return returnVal
}
}
第 2 步:將 Swift 檔案匯入 ObjC 類
在 SomeRandomClass.m
:
#import "<#YourProjectName#>-Swift.h"
檔案:<#YourProjectName#>-Swift.h
應該已經在專案中自動建立,即使你看不到它。
第 3 步:使用你的類
MySwiftObject * myOb = [MySwiftObject new];
NSLog(@"MyOb.someProperty: %@", myOb.someProperty);
myOb.someProperty = @"Hello World";
NSLog(@"MyOb.someProperty: %@", myOb.someProperty);
NSString * retString = [myOb someFunction:@"Arg"];
NSLog(@"RetString: %@", retString);
注意:
1. CodeCompletion 的表現不如我所希望的那樣準確。在我的系統上,執行快速構建 w /“cmd + r”似乎有助於 Swift 找到一些 Objc 程式碼,反之亦然。
2. 如果你將 .swift
檔案新增到較舊的專案並收到錯誤:dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
,請嘗試完全重新啟動 Xcode。
3. 雖然最初可以通過使用 @objc
字首在 Objective-C 中使用純 Swift 類,但在 Swift 2.0 之後,這已不再可能。有關原始說明,請參閱編輯歷史如果在將來的 Swift 版本中重新啟用此功能,則答案將相應更新。