19

ストーリーボードを保存して変更をgitにコミットすると、セクション全体<classes>がソース管理(git)から削除または追加される可能性が高くなります。XCode統合UIではなく、コマンドラインでgitを使用しています。

まず、次のようになります。

+    <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>

それはなぜですか、そしてもっと重要なのは、どうすればそれを止めることができるのでしょうか?

4

2 に答える 2

10

(この回答は個人的な経験に基づいており、正式なものではありません)

xmlファイルのclassesセクションには.storyboard、プロジェクトにあるすべてのViewControllerが一覧表示されます。

  1. Interface BuilderでUI要素を選択したときに、アシスタントエディタに適切なソースファイルが表示されるようにします。
  2. Identity Inspector(右側のパネル)がカスタムクラスのオプションを表示できるようにします。

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

このセクションが最初に表示されたという事実は、必要に応じて自動生成されるため、無視しても安全であることを意味します。すでにコミットしていて、その後diffで削除されたように見える場合は、Identity Inspectorを開き、[カスタムクラス]で使用可能なクラスのリストをドロップダウンして、セクション全体がどのように存在するかをもう一度確認します。

于 2012-11-07T14:48:42.313 に答える
1

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

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

于 2013-07-25T17:30:09.313 に答える