2009-07-14 5 views
22

やあみんな、私は、私はリソースを追加するとき、それは私のプロジェクトディレクトリの最上位ディレクトリに追加されるということで気にしている一つのことを。たとえば、現時点では、すべての画像が最上位のディレクトリにあり、見た目が乱雑になります。私はむしろタブバー/アイコンのように、特定の物事のために画像を保存するためにその内画像/フォルダ、その後、サブフォルダを持つように、例えば、言っていたでしょう。これは可能ですか?それとも、最上位ディレクトリにすべてを保持するのが慣習ですか?Xcodeのプロジェクトリソースの組織と構造私はXcodeのに比較的新しいです

freenodeの#iphonedevチャネルの誰かが、ビルドプロセスのルールなどについて教えてくれました。複雑すぎるように思えました。私は気にしないでください。ほとんどの人は、ルートディレクトリに複雑さソリューション。おそらくそれはすべて複雑ではありませんが、私はそれがより簡単になると感じました。

たとえば、すべての私のnibファイルを保存するviews/のような私のビュー用のサブフォルダが必要です。現在、それらはすべてトップレベルディレクトリにあります。同じことが私の不動産リストにも当てはまります。あなたが慣例があるものを私に言うことができる場合、私はそれを感謝

は、私はそれだけでトップレベルのディレクトリにあるすべてのものを格納することである疑い。私は実際のファイルシステムを指しています。私のプロジェクトのトップレベルのディレクトリはまだ混乱しているので、単にXcodeに物事を整理するための仮想フォルダを作成するだけではありません。そして、より良いものを整理することが可能な場合、それを達成するための詳細な助けに感謝します。

私は最終ビルドでは、ファイル全体の構造は、ルートディレクトリに押しつぶさされることを聞いたことがあると思います。私はそれについてはあまり気にしない、私は私のプロジェクトに取り組んでいる間、物事を整理したいだけです。私はこれがビルルールのものが入ってくる場所だと思うが、どうやってやるべきか分からない。

ありがとうございます!

答えて

20

はここでグラハムの提案のもう少し説明です:

  • 右クリックし、[グループと
  • 情報
  • を見る「を選択Xcodeでイメージのグループを作成imagesディレクトリ
  • を作成します。..あなたの画像ディレクトリにグループのディレクトリを設定するには

ここで画像グループに入れたものはどれですか?画像ディレクトリに直接入ります。これはXcode内、他のプロジェクトやFinderからドラッグ&ドロップする場合、またはimagesディレクトリを右クリックして[新規追加...]を選択した場合に当てはまります。 (これは、情報ペインの "グループとの相対"のデフォルト設定をそのままにしていることを前提としています)。

これは、あなたがそのグループに入れたもの(NIBなど)でも有効です。

imageNamed:の場合は、ベース名を指定するだけです。

私は、ファイルシステムのディレクトリを少数保有し、主にXcodeのグループで整理することをお勧めします。しかし、私は同意する、ファイルシステムのディレクトリの少数は非常に便利です。すべてのソースコードをClassesディレクトリに置きます(Appleがその名前を使用したからといって、私は "Sources"などを選んだでしょう)。また、トップレベルにResourcesディレクトリがあり、その下にイメージとオーディオディレクトリが作成されます。しかし、私は一般的にそれを超えて多くの本当のディレクトリを作成しません。これは物事をちょっと整理しますが、シェルでgrepやワイルドカードを使う方が簡単です。

シェルツール以外にも、ディレクトリではなくグループ別に整理することの大きな利点は、バージョン管理システム(Subversionなど)への影響です。あなたの「Views」グループが大きすぎることに突然気付くと、ファイルを移動することによる大きな影響を受けることなく、それを再編成することができます。

+0

ありがとう、これは私のためにそれをしました。ええ、私はそれをやりすぎることを計画していません、少なくとも基本的な組織構造は持っているといいです。これまでのところ、images/tab-barとimages/player、プロパティリスト/ .plistファイルとビューを保存する/ nibファイルを保存するためのimages /があります。私は物理的に 'Resources'フォルダを作成することを考えましたが、既存のResourcesグループのパスを新しいResourcesフォルダに変更することで、どうすればよいのでしょうか?または、既存のリソースグループの下に「リソース」グループを作成しますか? –

+0

私は、フォルダ参照としてフォルダを追加することでそれをやり直すことになりました。私はどこかでこのフォルダが追跡されることを意味するので、ファイルを追加/削除すると、Xcode側で何もする必要はありません。これが後で問題を引き起こすかどうかは分かりません。 –

+1

コメントスパムに申し訳ありません。フォルダ参照は、生成された.appにそのフォルダ構造を作成したことを意味することが判明しました。解決策は、トップレベルにリソース/を作成することでした。サブディレクトリはimages /、views /などです。次に、それらのサブディレクトリを左側のリソースグループにドラッグし、グループとして追加します。これで、ファイルシステムを見て、Xcodeで整理されたように見えるようになりました。 –

2

それはあなたがなりたい場所にどこから取得する、実際にはとても簡単です。 images/フォルダを作成し、すべての画像をフォルダに入れます。 Xcodeのプロジェクトウィンドウでは、イメージファイルはもう存在しないため、赤くなっています。それらについての情報を取得し、新しい場所を「選択...」します。

ソースファイルシステム($SRCROOT)でファイルを移動したという理由だけで、ファイルがその製品でどのように使用されているかは変わりません。ファイルを移動する前にContents/Resources/にコピーされている場合は、それが後でコピーされます。宛先にサブフォルダは追加されません。

+0

ありがとうございました!これはnibファイルとプロパティリストでも使えますか?私のコード、例えば画像でこれらを読み込むと、imageNamed:@ "file.png"やimageNamed:@ "path/to/my/file.png"を実行しますか? –

3

人生はIDEのハードです。彼らはファイルシステムの世界の間で仲介しなければなりません。コンパイラはそのソースファイルが存在し、UIの世界はプログラマが働きます。

現代のコーディングカルチャーを形成していた昔、誰もが、コンパイラや人々は、ファイルシステムですべての人間が暮らしていました。今日では、ソースとリソースがディスク上のどこにあるかを制御したいと思う傾向があります。コンパイラが何を食べるかを正確に知る必要があるかもしれないので、それは良いことです。

あなたのIDEは面白いデータベースシステムのフロントエンドと同じように思えますが、ほとんどの場合その機能と機能について完全に自信を持っている場合は、あなたがファイルシステムを気にしないのであれば、プログラマーとして(そして人間として)より良い人生を送るかもしれません。Xcodeのは(正確に)あるファイルシステムのコードの組織や人々について非常に良いも友好的ではありませんので、あなたは右のようにうるさい、迷っている

は、ディスク上の、そしてその上で彼らのフォルダにファイルを移動する方法を学びます Xcodeグループ。つまり、「追加されたフォルダにフォルダ参照を作成する」を使用する場合は、1:1の関係になります。

しかし、あなたは、同じフォルダ内のすべてを持つ単純なフラットファイルシステムツリーを使用するApple itsefの多くの人と多くのプロジェクトの例を見ることができます。

私のアドバイスは、パブリックヘッダーとリソースを少なくともJava/Mavenの異なるフォルダにグループ化することですが、普遍的な慣習はありません。

+0

ありがとうございますが、私はXcodeがこれを吸ったとは決して言いませんでした。私はそれが初めてで、それがどうやって行なわれたらいいのか、さらにそれが完了すべきかどうかは疑問だ。私がgithubリポジトリを見に行くと、トップレベルのディレクトリにすべてのものがあるのが面倒です。 –

+0

申し訳ありませんが、私は失礼を意味しませんでした。私はあなたが不思議に思っていたことを知っています。私はその言葉を変えるつもりです。 – IlDan

+0

問題はありません、応答のおかげで。それはいくつかのものをクリアしました。 –

5

Xcode 4.3.2では、私には受け入れられた回答が機能しませんでした。 「情報を見る」メニューオプションを削除したようです。代わりに、私はこれをしました:

  1. 私はそれが欲しかったディスク上のディレクトリを作成しました。

  2. は、右のグループをクリックし、ファイルメニューに

  3. に行った私は

  4. を「プロジェクト名にファイルを追加」選択

  5. に追加したい、私が作成したディレクトリからファイルを追加しました(1)

関連する問題