1. ホーム
  2. ios

自分のプロジェクトからPlaygroundに自分のクラスをインポートする方法

2023-09-29 15:21:05

質問

このような設定を想定してください。

  • Xcode 6プロジェクトがあり、Objective-CとSwiftの両方で独自のクラス(MyViewとMyViewControllerなど)を実装しています。
  • プロジェクトにプレイグラウンドを追加しました。

プレイグラウンドでは、以下のようなモジュール(フレームワーク)をインポートすることが可能です。 UIKit を使って import キーワードを使用します。プレイグラウンドからプロジェクトの他のクラスにアクセスできるようにするにはどうすればよいですか?

プロジェクトのクラスに直接アクセスしようとしただけで、エラーメッセージが表示されます。 未解決の識別子 'MyView' を使用しています。

どのように解決するのですか?

Xcode 6.0 Beta 5 では、独自のフレームワークをプレイグラウンドにインポートすることが可能になりました。これは、アプリケーションとプレイグラウンドの間でコードを共有する方法を提供するもので、両方ともフレームワークをインポートすることができます。これを行うには

  1. あなたのプレイグラウンドは、フレームワークを生成するプロジェクトと同じワークスペースになければなりません。ワークスペースには、事前に構築されたフレームワークを使用するのではなく、フレームワークを生成するターゲットが含まれていなければなりません。

  2. フレームワークをすでにビルドしている必要があります。iOS フレームワークの場合、64 ビットの実行先 (例: iPhone 5s) 向けにビルドし、シミュレータ向けにビルドする必要があります。

  3. 少なくとも 1 つのターゲットをビルドするアクティブなスキームが必要です (そのターゲットのビルド場所は、プレイグラウンド用のフレームワーク検索パスで使用されます)。

  4. あなたの "Build Location" 環境設定 (Xcode の高度な "Locations" 設定内) は "Legacy" に設定されてはなりません。

  5. フレームワークが Swift フレームワークでない場合、"Defines Module" ビルド設定は "Yes" に設定されなければなりません。

  6. フレームワークのプレイグラウンドにimportステートメントを追加する必要があります。

これらの条件をすべて満たせば、フレームワークのインポートはプレイグラウンドで動作するようになります。

Xcode 7では、フレームワークをインポートする代わりに、独自のクラスをソースとしてインポートするために使用できる別のメカニズムが導入されました。 http://help.apple.com/xcode/mac/8.0/#/devfa5bea3af