web-dev-qa-db-ja.com

iOSインポートSwiftクラスfrom Swiftフレームワークを使用

フレームワークからSwiftクラスをインポートするにはどうすればよいですか?

  1. Xcodeワークスペースがあります
  2. Swiftを使用してCocoatouchフレームワークを作成します
  3. そのCocoatouchフレームワークでTestClassという名前のSwiftクラスを作成します
  4. タブ付きベースのiOSアプリケーションを作成します
  5. import FrameWorkTestを使用してそのタブ付きiOSアプリケーションにフレームワークをインポートします

アプリケーションプロジェクトコンパイラがTestClassを見つけることができません。メインアプリケーションで使用するためにTestClassをインポートするにはどうすればよいですか?

TestClassが定義されていないということです。また、FrameWorkに拡張機能を追加して、それを使用したいと思います。

https://github.com/ArtemKyslicyn/-SwiftImportFrameworkTest

私はこのチュートリアルを使用しています http://www.Swift-studies.com/blog/2014/6/30/creating-a-pure-Swift-framework-for-both-ios-and-mac

Xcodeバージョン6.0シードを使用しています

ありがとう

13
Artem Kislitsyn

これが私が見つけた1つの解決策です:

  1. 新しいiOSプロジェクトを作成する
  2. プロジェクトを押す
  3. +を押してターゲットを追加します
  4. 表示されたウィンドウで、cocoa touch frameworkを選択します
  5. projectを押し、add dependencyadd frameworkを押します。
  6. 成功!

screenshot illustrating the success

ここでソリューションを使用しました: https://github.com/ArtemKyslicyn/-SwiftImportFrameworkTest AddingFrameWorkという名前のプロジェクトで

3
Artem Kislitsyn

フレームワークのクラスを公開します。また、フレームワークの外部で使用する場合は、変数をパブリックにする必要があります。

public class MyClass... {
 ...
}
36

@Artem Kislitsvn:あなたのgithubリポジトリを見ました、

ターゲットの「test」と「FrameWorkTest」の外側にTestClass.Swiftファイルがあります。これは名前空間の範囲外です。

Swift名前空間はターゲットごとに指定されます。この場合、「test」と「FrameWorkTest」は2つのターゲットです。ファイルをターゲットから除外すると、class(.Swiftファイルはいつでも表示されません)。

解決策は非常に簡単です。 TestClass.Swiftファイルを任意のターゲットグループ内に移動するだけです(プロジェクトエクスプローラーからドラッグアンドドロップします)。

これに続いてあなたのプロジェクトは機能します...!

フレームワークからSwiftクラスをインポートするには:

プロジェクト->ビルドフェーズ->テストターゲットの選択->バイナリとライブラリのリンク-> +ボタン->その他の追加(ダイアログ上)->フレームワークを選択しておめでとうございます!

以下の画像に説明を残します。

enter image description here

enter image description here

0
xavi.pedrals