43

プロジェクトの別の Swift ファイルに最も単純なカスタム クラスを作成しました。

class Foo
{
    init()
    {
        println("I made a foo.")
    }
}

次に、同じプロジェクト内のプレイグラウンドで、試しました

var x = Foo()

Xcode はこれを気に入らなかったようで、'Foo' は未解決の識別子であると教えてくれました。プロジェクト内の他の Swift ファイルは問題なく 'Foo' を解決できるため、プレイグラウンドがプロジェクト構造の残りの部分にどのように適合するかについて多少混乱しています。

プロジェクトの他の Swift ファイルで定義したカスタム クラスをプレイグラウンドで使用できるようにするにはどうすればよいですか? ビルド ターゲットの製品モジュールに名前を付けてプレイグラウンドにインポートしようとしましたが、成功しませんでした。プレイグラウンドは製品モジュールの名前を認識しません。

よろしくお願いします。私はそれが単純なものであることを知っています。

4

4 に答える 4

31

プレイグラウンドでプロジェクトのコードを使用するには 2 つの方法があります

Playground の Sources フォルダ

はい、Xcode 6.3 Beta 3 で (そしてできれば将来的に):

プレイグラウンドは、Xcode 内で、クリックすると Resources フォルダーと Sources フォルダーが表示される開閉用三角形を備えたバンドルとして表されるようになりました。これらのフォルダーには、プレイグラウンドのメイン Swift コードから簡単にアクセスできる追加のコンテンツが含まれています。これらのフォルダーを表示するには、[View] > [Navigators] > [Show Project Navigator] を選択します (または単に Command-1 を押します)。

新しいプレイグラウンドを開き、cmd + 1 を押して左側のペインを表示し、ファイルをsourceフォルダにドラッグしてプレイグラウンド内で使用します。

ノート:

ソース フォルダー内のファイルはフレームワークにコンパイルされます。つまり、プレイグラウンドでクラス、関数などにアクセスできるようにする場合は、明示的に としてマークする必要がありますpublic

public class VisibleClass {
}

class InvisibleClass {
}

出典:リリース ブログ

プロジェクトをフレームワークにコンパイル

  1. プロジェクトをワークスペースに移動します (まだ移動していない場合)。(ファイル -> ワークスペースとして保存) でうまくいきます
  2. プロジェクトにフレームワーク ターゲットを追加する
  3. フレームワークの構築
  4. アクセスしたいファイルがフレームワークターゲットに追加されていることを確認してください
  5. Playground をワークスペースに追加します(プロジェクトではありません)。
  6. 使用する@testable import YourFrameworkName
  7. 遊び場のアクセスコード

私はここに書いたので、チェックしたい場合はもう少し詳しく説明します.

于 2015-03-23T21:28:45.333 に答える
30

彼らがすることはできません。遊び場は自己完結型です。これは将来変更されることを願っています。

編集: Xcode 6.3 の時点で、Playgrounds にサポート コードを含めることができるようになりました。同じプロジェクト内の他のコードを表示することはできませんが、Playground 内から使用できる Playground のサポート フォルダーにコードを追加することはできます。詳細については、Swift ブログを参照してください。

于 2014-06-05T08:23:07.593 に答える