7

ビルド設定でフルパスを指定してブリッジヘッダーを追加しました。ブリッジヘッダーは自動的に作成されました。この後、obj-c ヘッダー ファイルをインクルードしました。しかし、オブジェクトのコンストラクターを呼び出そうとするたびに失敗します:「宣言されていない識別子の使用」。 ここに画像の説明を入力

私がやったことのリスト:

  1. ブリッジヘッダーを作成するために提案された.mファイルとXcodeを作成しました
  2. obj-c ファイルをプロジェクトに追加し、それらをヘッダーにインポートしました
  3. ビルド設定では、ブリッジ ヘッダー ファイルへのフル パスが提供されました

ここに画像の説明を入力

  1. コードで Obj-C タイプを使用しました...しかし、ビルドしません。
  2. 次に、ヘッダーへのフルパスではなく、プロジェクトがあるフォルダーからのパスを提供しました-結果はありません。

Apple のドキュメントに従ってすべての手順を再確認しましたが、結果はありませんでした。なんで?どんな助けでも大歓迎です。

4

2 に答える 2

2

次の手順を実行します:

  1. Swift プロジェクトを作成する
  2. テスト クラスを .m と .h を個別に追加するのではなく、Cocoa クラスとして追加します。Xcode プロンプトにブリッジ ヘッダーを追加します。
  3. ブリッジ ヘッダーにテスト クラス ヘッダーをインポートします。これは既に行っています。Swift でテスト クラスをインスタンス化しても問題はありません。
  4. BL_KeyChainWrapper .m と .h を finder のプロジェクト ディレクトリにコピーします。
  5. BL_KeyChainWrapper ファイルをプロジェクトにドラッグし、Add to Targetsを確認します。
  6. BL_KeyChainWrapper ヘッダーをブリッジング ヘッダーにインポートします。
  7. Swift で BL_KeyChainWrapper クラスをインスタンス化します。

上記の手順に従ってもエラーが発生する場合。BL_KeyChainWrapper.hで BL_KeyChainWrapperという名前のクラスを宣言していない可能性があります。BL_KeyChainWrapper.h に次のようなコードがあることを確認してください。

@interface BL_KeyChainWrapper : BaseClass
于 2014-06-29T15:57:36.997 に答える
0

さて、ブリッジヘッダーを使用してテストプロジェクトを作成した後、次のことがわかりました。

  1. .m ファイルを追加すると、Xcode からブリッジング ヘッダーの作成が提案されました。

  2. .h ファイルを追加し、class という名前を付けて、このように Obj-C クラスを作成しました。

と:

ビルド設定では、コード生成セクションは次のようになります。

ここに画像の説明を入力

次のパスにあるブリッジング ファイル:

ProjName / BridgeHeader.h

.xcodeproj ファイルと同じレベルに存在します。

しかし:

作成済みの Obj-C クラスをプロジェクトに追加し、ブリッジ ヘッダーにヘッダー インポートを追加したところ、使用できませんでした。

ここに画像の説明を入力

したがって、Xcode 6 beta 2 は既存のファイルを迅速なプロジェクトに追加できないと思います。誰かがこの問題に直面しましたか?作成したファイルに 5 年間開発してきた既存のライブラリをすべて貼り付けたくないからです。

PS:

ブリッジ ヘッダー:

ここに画像の説明を入力

于 2014-06-29T15:17:15.137 に答える