2016-05-26 4 views
0

私はNSOperationのサブクラスとカスタムのinitメソッドを引数に取ることができます。このクラスはOBJ Cで書かれています。このinitメソッドをユニットテストのSwiftクラスから呼びたいと思っていました。私はinitメソッドをswiftから直接呼び出せる方法はありますか?コンパイラがinitメソッドを認識できませんでした。SwiftからNSOperationsサブクラスのObj CカスタムInitメソッドを呼び出す方法

答えて

0

ブリッジヘッダーを作成し、そこでObjCクラスをインポートする必要があります。そして、そのクラスには、「ソース」を選択し、「ヘッダーファイル」をクリックし、Xcodeの(ファイル>新規>ファイル)に新しいファイルを追加するには、迅速なクラス

  1. のすべてで利用できるようになります。

  2. "YourProjectName-Bridging-Header.h"というファイルに名前を付けます。 ...

  3. ファイルを作成します。

  4. プロジェクトビルドの設定に移動し、「Swift Compiler - Code Generation」セクションを探します。検索ボックスに「Swift Compiler」と入力すると、検索結果を絞り込むことができます。注:Swiftコンパイラ - コード生成セクションがない場合は、まだプロジェクトにSwiftクラスが追加されていない可能性があります。スウィフトファイルを追加して、もう一度やり直してください。

  5. "Objective-C Bridging Header"の次に、ヘッダーファイルの名前/パスを追加する必要があります。ファイルがプロジェクトのルートフォルダにある場合は、そこにヘッダファイルの名前を入力します。例: "ProjectName/ProjectName-Bridging-Header.h"または単に "ProjectName-Bridging-Header.h"。

  6. 新しく作成したブリッジヘッダーを開き、#importステートメントを使用してObjective-Cクラスをインポートします。このファイルに記載されているクラスには、迅速なクラスからアクセスできます。インフォ上記

ここに発見された:http://www.learnswiftonline.com/getting-started/adding-swift-bridging-header/

+0

私はすでに置かブリッジヘッダファイルを持っています。 Initメソッド以外のクラスにアクセスすることができました。何か理由があります。 swiftファイルで同じサブクラスを作成すると、次の構文でinitメソッドにアクセスできます。nsoperationsubclass(initmethod arguments) –

+1

初期化子のコードスニペットを表示できますか? –

+0

Xcodeがあなたのためにブリッジヘッダを作るのは簡単です。スウィフトプロジェクトで新しいObjective Cファイルを作成するか、またはその逆にします。 – Alexander

関連する問題