[解決済み] Objective-CのクラスからSwiftの関数を呼び出す
質問
私は古い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" です。 から参照されています。 objc-class-ref in "ObjectiveC_Class_That_Call_Swift_Object".o ld: symbol(s) not found for architecture i386 clang: エラー: リンカのコマンドに失敗しました。 コマンドは終了コード 1 で失敗しました (呼び出しを確認するには -v を使用します)
どのように解決するのですか?
問題は解決されました。
.h
ファイルを
Objective-C
という名前のクラス
<ProductModuleName>-Swift.h
しかし、後でわかったことですが、コンパイラは必要なファイルを見えないように作成するので、このステップは必要ありません。
単純にインクルードする
<ProductModuleName>-Swift.h
を含めるだけで、動作するはずです。
関連
-
[解決済み] Objective-CでNSStringsを連結するためのショートカット集
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] 角括弧 < > と引用符 " " を使って #import する。
-
[解決済み] Swiftでクラスをプロトコルに準拠させるには?
-
[解決済み] switch文の中で変数を宣言する [重複]。
-
[解決済み] ベストプラクティス - 自分のプロジェクト/アプリのためのNSErrorドメインとコード
-
[解決済み] Objective-Cでオブジェクトをコピーする方法
-
[解決済み] Objective-CでQueueを作成し、使用するにはどうすればよいですか?
-
[解決済み] 数字の後に "f "をつける
-
[解決済み] NSTimeInterval(秒)を分単位に変換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] SwiftとC++を混ぜることはできますか?Objective-Cの.mmファイルのように
-
[解決済み] Objective-Cのクラス→文字列のようなものです。[NSArray className] -> @"NSArray" のようになります。
-
[解決済み] ARCで__autoreleasing ownership修飾子を記述する必要があるのは、どのような場合ですか?
-
[解決済み] IOSのUIViewからアプリケーションのドキュメントフォルダに画像を保存する
-
[解決済み] ベストプラクティス - 自分のプロジェクト/アプリのためのNSErrorドメインとコード
-
[解決済み] メソッドが存在するかどうかをチェックする
-
[解決済み] Xcodeがシステムキーチェーンを使用するためにパスワードを要求し続ける
-
[解決済み] Objective-CでSwift構造体を使用する方法
-
[解決済み] UIButtonのテキストを変更する
-
[解決済み] NSIntegerをint型に変換するには?