古いObjective-Cプロジェクトがあり、新しいSwift関数とオブジェクトを呼び出したいので、ファイル「<ProjectName>-Bridging-Header.h
」と「<ProjectName>-Swift.h
」を作成しました。
SwiftからObjective-Cに関数を呼び出すのは簡単でしたが、逆の問題があります。
そこで、単純なクラス「System.Swift」を作成しました。
import Foundation
@objc class System : NSObject {
@objc func printSome() {
println("Print line System");
}
}
今、私はここと<...>-Swift.h
私がこれを書いたファイルの中にドキュメントに従おうとしました
@class System;
@interface System : NSObject
-(void)printSome;
@end
そして、Objective-Cクラス内にインポートしました。この時点で、Objective-CコードのObjective Cクラス(現在はUIViewController)内で、「printSome」メソッドを呼び出そうとしました。
- (void)viewDidLoad
{
[super viewDidLoad];
System * sis = [[System alloc] init];
[sis printSome];
//any additional setup after loading the view from its nib.
}
今、私は次のエラーがあります:
アーキテクチャi386の未定義のシンボル: " OBJC_CLASS $ _System"、参照元: "ObjectiveC_Class_That_Call_Swift_Object"のobjc-class-ref.o ld:アーキテクチャi386のシンボルが見つかりませんclang:エラー:リンカーコマンドが終了コード1で失敗しました(使用-v呼び出しを確認する)