2012-04-25 7 views
19

ストーリーボードを保存してgitへの変更をコミットするときに、<classes>セクション全体がソースコントロール(git)から削除されるか、追加される可能性があります。私はgitをコマンドラインで使用しています.XCodeの統合UIではありません。gitがStoryboard <classes>セクションを繰り返し追加して削除するのはなぜですか?

それはこのようになります:まず

+ <classes> 
+  <class className="CPTGraphHostingView" superclassName="UIView"> 
+   <source key="sourceIdentifier" type="project" relativePath="./Classes/CPTGraphHostingView.h"/> 
+  </class> 
... 
+ </classes> 

し、次の中には、それがそのように見えるコミット:

- <classes> 
-  <class className="CPTGraphHostingView" superclassName="UIView"> 
-   <source key="sourceIdentifier" type="project" relativePath="./Classes/CPTGraphHostingView.h"/> 
-  </class> 
... 
- </classes> 

なぜもっと重要なことがあり、そして:私はどのようにすることを停止することができます?

+0

実際に追加され、削除されるか、各コミットで移動されますか(つまり、コミットごとに追加と削除の両方が表示されます)。後の方がはるかに可能性が高いようです。 –

+0

コミットは同じコンピュータ上で実行されていますか?そうでない場合は、まったく同じバージョンのストーリーボードで行われますか? –

+0

@JanHudec 1つのコミットで追加され、別のコミットで削除されました。私はコードのブロックを理解することができますが、これは別々のコミットで起こります。私たちは3人のディヴァイパーで、あなたが言及した2つの側面を調べます。 – ericteubert

答えて

10

  1. にあなたが順序であなたのプロジェクトを持っているすべてのビューコントローラを(この答えは、個人的な経験をベースにしており、正式なものではありませんされて).storyboard xmlファイルリストの

    classesセクションインターフェイスビルダでUI要素を選択すると、アシスタントエディタに正しいソースファイルが表示され、

  2. IDインスペクタ(右側のパネル)でカスタムクラスのオプションを表示できるようになります。

このセクションは、上記の2つの使用方法の両方がしばらく使用されていない場合は廃止されると思います。

このセクションが最初に現れたという事実は、必要に応じて自動的に生成されるため、無視しても安全だということを意味します。すでにコミットしていて、それがdiffで削除されたと思われる場合は、アイデンティティ・インスペクタを開き、カスタム・クラスで使用可能なクラスのリストをドロップダウンして、セクション全体が再びどのように存在するかを確認します。

+1

これは非常に良い説明です。しかし、それでも、これを避ける方法はありますか?ストーリーボードを開いたときにXcodeがそれを感じたときにストップボードを削除するのではなく、ストーリーボードに永久保存するようにXcodeに指示する方法はありますか?それはコミットとその煩わしさと混乱します。 –

1

私の経験では、ストーリーボードを開いてクラスの存在に関するエラーが発生した場合にのみ削除が行われます。この例では、マージの競合が解決されていない間にストーリーボードを開いています。 1つ以上のクラスが解析できない可能性があります。この場合、インタフェースビルダーは問題のクラスだけでなくセクション全体を削除しているようです。

私にとっては、削除が見えるようになった場合に備えて、パッチが準備できたら再度ストーリーボードを開いて簡単に修正できます。すべての問題が解決されると、セクションが再生成されます。そうでない場合は、プロジェクト設定に問題があり、とにかくコミットしてはならないことを意味します。

関連する問題