objCからスワイプファイルで関数を呼び出そうとしています。私は "#import project_name-Swift.h"をインポートしようとしましたが、エラーが発生します - > "project_name.hファイルが見つかりません"objCからスワイプを呼び出す
objCファイルはポッドの一部です。それが問題の一部であるかどうかは分かりません。
ありがとうございました! :)
objCからスワイプファイルで関数を呼び出そうとしています。私は "#import project_name-Swift.h"をインポートしようとしましたが、エラーが発生します - > "project_name.hファイルが見つかりません"objCからスワイプを呼び出す
objCファイルはポッドの一部です。それが問題の一部であるかどうかは分かりません。
ありがとうございました! :)
ブリッジヘッダーファイル(PROJECT_NAME-Bridging-Header.h
)を追加し、XCodeがそこで見つけることができない必要なヘッダーを追加する必要があります。そのファイルの名前は、Build Settings
のObjective-C Bridging Header
にあります。
このファイルは、Swiftプロジェクトにobjcファイルを追加するときに自動的に作成され、SwiftからObjective-Cへの呼び出しに使用されますが、逆方向にも必要です。
他に行うことは、目的の-cファイルに#import "PROJECT_NAME-Swift.h"
を追加することです。このファイルは、DerivedDataプロジェクトのBuildディレクトリの深くに作成され、その命名規則は事前定義されています。
さらに、Swiftクラスを: NSObject
で拡張し、宣言の冒頭に@objc
とマークする必要があります。
最後に、別のモジュールの一部である場合は、Swiftのクラスとメソッドをpublic
とマークする必要があります。 Publicはデフォルトのアクセス権ではありません。
#importステートメントの次に使用すると思われる正確なヘッダーファイルのname.hファイルをコピーして貼り付けます。プロジェクト名をインポートする必要はありません。使用するヘッダーファイルが必要です。私はこれをコメントに入れましたが、私はここでちょっと新しく、まだコメントできません。
たとえばプロジェクトでSWRevealViewController.hを使用したい場合は、
あなたの橋渡しヘッダファイルに
#import "SWRevealViewController.h"
が必要になり、私はこれが
あなたはあなたの問題うちに解決への手順以下の簡単なに従う必要があります: - 右クリック> -
1)最初のファイルを選択します(プロジェクトから既存のブリッジのヘッダーファイルを削除ファインダー内>ショー)。
2.)一度削除してから、プロジェクトに存在するかどうかを確認してください。存在しない場合は、プロジェクトのルートに新しいヘッダーファイルを作成します。
3.)プロジェクトを選択し、ビルド設定に進みます。 finf swiftコンパイラ - コード生成セクション。
4。プロジェクト名/ブリッジ・ヘッダfilename.h
6)等Objective-Cのブリッジヘッダに)設定されたパス
5 YES にObjective-Cの互換ヘッダをインストールを設定します。 )altキーを選択してクリーンビルドフォルダを選択してください。あなたのプロジェクトを実行し、今はうまくいった!
@Sam:チェックマークを使用して回答を受け入れました。 –
プロジェクトのルートにブリッジヘッダーを用意して、プロジェクトを再構築するだけです。
プロジェクトのルートにブリッジヘッダーファイルを作成し、パスをビルド設定で設定します。
プロジェクトの設定方法を示してください。 Swiftファイルはどのモジュール/ターゲットですか?ポッドは他のプロジェクトとどのように関連していますか? – jtbandes
より多くのコードを共有できますか?please –