60

私は Xcode 6 で作業しており、セッション 401「Xcode 6 の新機能」でデモされたコードを再作成しようとしています。Images.xcassets (Sample と呼ばれる) に画像を追加し、プレイグラウンド ファイル内で、デモのようにこの画像にアクセスしようとしています。

私のコードは次のとおりです(デモのように):

var sample = UIImage(named: "Sample")

ただし、デモのように動作させることはできません。何か不足していますか?

4

12 に答える 12

112

iOS Developer Library -> Playground Helpを見て、 "Resource Files" を検索すると、答えが見つかります。

1、プレイグラウンドを開く

2、[表示] > [ナビゲーター] > [プロジェクト ナビゲーターを表示] を選択して、プロジェクト ナビゲーターを表示します。

3、画像をリソースにドラッグします

次のように:

ここに画像の説明を入力

于 2015-06-11T03:26:23.537 に答える
68
  1. Finder で .playground ファイルを開きます。
  2. その横に Resources という名前のフォルダーを作成します。
  3. 必要な画像をこのフォルダーに追加します。
  4. プレイグラウンドで opt-cmd-1 を押してファイル インスペクターを開きます。右側に遊び場が見えます。選択していない場合は、cmd-1 を押して Project Navigator を開き、プレイグラウンド ファイルをクリックします。

ファイル インスペクター

  1. [リソース パス] で [プレイグラウンドに相対] を選択します。
  2. 下のフォルダー アイコンをクリックし、前に作成した Resources フォルダーを選択します。

これで、標準の NSImage (named:"filename_without_extension") で使用できるバンドルができたはずです。

作業中の nsbundle イメージ

注: Xcode は .playground フォルダーを頻繁に上書きするため、リソース フォルダーが頻繁に削除されて再作成されないように、この方法を使用することをお勧めします。

于 2014-06-08T18:33:39.360 に答える
32

これにも困ったことがあります。

残念ながら、クリスの答えはうまくいきませんでした。おそらく、Xcode 6 の後のベータ版リリースでこの設定が削除されたのではないかと思います。

これは、2014 年 7 月 21 日に利用可能な Xcode 6.0 ベータ 4 (6A267N) の時点での解決策です。これは、Resources フォルダーがプレイグラウンド パッケージ自体の中にある場所です。

これを設定する方法は次のとおりです。

Finder を使用する場合、または私のように素晴らしいパス ファインダーを使用する場合は、次のように右クリックして [パッケージの内容を表示]を選択します。

ここに画像の説明を入力

パッケージのResourcesフォルダーが表示されます。

ここに画像の説明を入力

画像ファイルをそのフォルダーにコピーすると、ビジネスが行われます。

let imageNames = ["back-button", "background", "bg_top"]
let images = imageNames.map { UIImage(named: $0) }

ここに画像の説明を入力

于 2014-07-31T11:20:26.530 に答える
4

Xcode 8 Beta 1 の時点で、イメージ リテラルを使用してイメージを Xcode プレイグラウンドにインポートできます。

入力を開始imageして、イメージ リテラルを追加します。

Swift 画像リテラル

画像を選択 (または参照) します。

画像

画像をインラインで表示します。

列をなして

于 2016-06-13T22:08:50.150 に答える
3

プレイグラウンドで次のコマンドを使用して、resourcePath のパスを見つけることができます。

var bundle = NSBundle.mainBundle()
var path = bundle.resourcePath

私のデフォルトは次のとおりです。

/Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Agents
于 2014-06-06T14:31:00.680 に答える
3

ただし、デモのように動作させることはできません。何か不足していますか?

名前だけを使用して参照するために画像をどこに配置する必要があるのか​​ わかりませんが、次のように画像へのフルパスを指定することで同じコードが機能するようになりました。

var sample = UIImage(named: "/Users/my_user_name/Desktop/Image1234.jpg")

フル パスを使用する必要があることは、必要以上に複雑に思えますが、機能し、より興味深い問題に進むことができます。

于 2014-06-05T20:35:06.450 に答える
2

これは、Xcode バージョン 6.1.1 で機能したものです。

  1. メインストーリーボードと同じディレクトリの下に Playground ファイルを作成します。

    フォルダ構造

  2. Playground ファイルの [ユーティリティ] ペインを開き、Resource Pathセクションの右矢印をクリックして、そのディレクトリに画像を追加します。

    Playground のリソース パス

  3. Playground ファイル内のイメージをテストします。

    結果

于 2015-02-10T21:58:46.500 に答える
2

XCode 6 ベータ 5 (およびおそらくそれ以降) を使用した iOS プレイグラウンドでは、バンドル内の画像を確認できます。

  1. プレイグラウンドで Cmd+Opt+1 を押し、リソース パスの下にある矢印をクリックします (これにより Finder が開きます)。
  2. 写真をこのフォルダに入れる
  3. どちらかでアクセスします

    let img = UIImage(named: "logo.png", inBundle: NSBundle.mainBundle(),
                      compatibleWithTraitCollection: nil)
    

    また

    let path = NSBundle.mainBundle().pathForResource("logo", ofType: "png")
    let img = UIImage(contentsOfFile:path)
    

    または Swift 4 の場合:

    let path = Bundle.main.path(forResource:"logo", ofType: "png")
    let img = NSImage(contentsOfFile:path!)
    
于 2014-09-09T17:01:41.183 に答える
1

XCode 6.3.1 を使用し、完全なシミュレーター (iOS) でプレイグラウンドを実行している場合、次のことを行う必要がありました。

  1. ファインダーで .playground ファイルを見つけます
  2. それを右クリック - >パッケージの内容を表示
  3. まだ存在しない場合は、パッケージ内に Resources という名前のフォルダーを作成します
  4. そこに画像を追加します

次に、インスタンス化するだけです let i = UIImage(named: "filename.png")

于 2015-05-28T00:42:27.330 に答える