2016-04-11 13 views
2

objCからスワイプファイルで関数を呼び出そうとしています。私は "#import project_name-Swift.h"をインポートしようとしましたが、エラーが発生します - > "project_name.hファイルが見つかりません"objCからスワイプを呼び出す

objCファイルはポッドの一部です。それが問題の一部であるかどうかは分かりません。

ありがとうございました! :)

+0

プロジェクトの設定方法を示してください。 Swiftファイルはどのモジュール/ターゲットですか?ポッドは他のプロジェクトとどのように関連していますか? – jtbandes

+0

より多くのコードを共有できますか?please –

答えて

2

ブリッジヘッダーファイル(PROJECT_NAME-Bridging-Header.h)を追加し、XCodeがそこで見つけることができない必要なヘッダーを追加する必要があります。そのファイルの名前は、Build SettingsObjective-C Bridging Headerにあります。

このファイルは、Swiftプロジェクトにobjcファイルを追加するときに自動的に作成され、SwiftからObjective-Cへの呼び出しに使用されますが、逆方向にも必要です。

他に行うことは、目的の-cファイルに#import "PROJECT_NAME-Swift.h"を追加することです。このファイルは、DerivedDataプロジェクトのBuildディレクトリの深くに作成され、その命名規則は事前定義されています。

さらに、Swiftクラスを: NSObjectで拡張し、宣言の冒頭に@objcとマークする必要があります。

最後に、別のモジュールの一部である場合は、Swiftのクラスとメソッドをpublicとマークする必要があります。 Publicはデフォルトのアクセス権ではありません。

2

#importステートメントの次に使用すると思われる正確なヘッダーファイルのname.hファイルをコピーして貼り付けます。プロジェクト名をインポートする必要はありません。使用するヘッダーファイルが必要です。私はこれをコメントに入れましたが、私はここでちょっと新しく、まだコメントできません。

たとえばプロジェクトでSWRevealViewController.hを使用したい場合は、

あなたの橋渡しヘッダファイルに

#import "SWRevealViewController.h" 

が必要になり、私はこれが

2

はStackOverflowの、サムへようこそ役に立てば幸い! Objective Cコードを迅速なコードと結びつけるためのブリッジヘッダーが必要です。 Hereは、ブリッジヘッダーをまだ作成していない場合に作成する方法に関するビデオです。この回答が役立つ場合は、チェックマークをクリックして正しいものにして上矢印をクリックしてください。

+1

ブリッジヘッダは、スウィフトコードからObj-Cコード*を呼び出すために使用されます。 – jtbandes

+0

私はそれが間違っていると読んでいない限り、ポッドから彼の迅速なプロジェクトにobjコードを取得したいと思っています –

6

あなたはあなたの問題うちに解決への手順以下の簡単なに従う必要があります: - 右クリック> -

1)最初のファイルを選択します(プロジェクトから既存のブリッジのヘッダーファイルを削除ファインダー内>ショー)。

2.)一度削除してから、プロジェクトに存在するかどうかを確認してください。存在しない場合は、プロジェクトのルートに新しいヘッダーファイルを作成します。

3.)プロジェクトを選択し、ビルド設定に進みます。 finf swiftコンパイラ - コード生成セクション。

enter image description here

4。プロジェクト名/ブリッジ・ヘッダfilename.h

6)等Objective-Cのブリッジヘッダに)設定されたパス

5 YES にObjective-Cの互換ヘッダをインストールを設定します。 )altキーを選択してクリーンビルドフォルダを選択してください。あなたのプロジェクトを実行し、今はうまくいった!

+0

@Sam:チェックマークを使用して回答を受け入れました。 –

2

プロジェクトのルートにブリッジヘッダーを用意して、プロジェクトを再構築するだけです。

2

プロジェクトのルートにブリッジヘッダーファイルを作成し、パスをビルド設定で設定します。

関連する問題