2009-10-11 11 views
6

最近のXcode 3.2には、Snow Leopardがあらかじめ用意されていなかった(私が思う)いくつかのコード生成が追加されたようです。Xcode 3.2.1 - なぜコアデータが生成され、ビルドエラーが発生するのですか?

私は、次の手順を取った:多くの関係(Endpointが多くSubscriptionオブジェクトを持っている)

    1. は1(inversible)1を含むいくつかのエンティティ、とシンプルな.xcdatamodelモデルを定義します。 「ファイル」 - >「新規」を選択し、(アイコンなし)「管理オブジェクトクラス」を選択します。その魔法使いから、私はクラスを選びました。そして、私はレースを離れました。

    2. それまで、ビルドしようとしました。私はこの結果を取得し、把握することはできません。

    未定義のシンボル: "_OBJC_METACLASS _ $ _ NSManagedObject"、から参照を: _OBJC_METACLASS _ $ _スクリプションで購読-B5BE258DF28BC03B.o _OBJC_METACLASS _ $ _エンドポイントエンドポイントインチ参照O "_OBJC_CLASS _ $ _ NSManagedObject"、: _OBJC_CLASS _ $ _中のサブスクリプションのサブスクリプション・B5BE258DF28BC03B.o _OBJC_CLASS _ $ _エンドポイントEndpoint.oで LD: collect2は見つからない記号(S):ldは1つの終了ステータスを返し

    私は助けてみたい何

    1. 誰もが私は間違って何をしたかのいずれかのアイデアを持っている場合、それは素晴らしいことです。

    2. Xcodeにクラスを再生成させるための唯一の方法は、File - > Newで、それらを再度置き換えることです(他のものの中でも)、新しいクラスと古いものあなたのプロジェクトのmove-asideフォルダに無駄に残されたクラスファイル。誰でもこれらを正しく同期させる方法を知っていますか?私は、新しいものをカバーするAppleのドキュメントは見つかりませんでした。

  • 答えて

    25

    CoreData.frameworkをプロジェクトに追加しましたか(または間違って削除しましたか)。それはリンクエラーの原因かもしれません。

    また、私はWolf RentschのMOGeneratorをチェックしてください。世代ギャップパターンを使用するコアデータクラスのための多くの強力なコードジェネレーターが です。カスタムコードを保持しながらxcdatamodelを保存するたびに自動的にクラスを再生成することができます。

    +0

    お返事ありがとうございます。私は持っていると思っていたが、私はそれを逃した可能性がある。 私はMOGeneratorを簡単に見ましたが、AppleがXcode 3.2に同様の機能を提供していて、突然廃止されたツールをワークフローに追加したくないようなので、評価する時間はかかりませんでした。Xcodeの機能は実際には文書化されていないので、私はMOGeneratorを知る時間を費やすこともあります。ありがとう! –

    +0

    Xcode 3.2.xは、10月13日の時点で、この質問を閲覧している人にMOGeneratorを手に入れようとしています。http://www.openradar.me/7289446 –

    9

    これは、誤って古いMOCクラス(プロジェクト内の別のグループなど)への参照を削除せずに誤って新しいMOCクラスセットを生成した場合、最も簡単で最も頻繁に見落とされやすい方法です。 。私はこれがまさに私がやったことであることに気付く前に、あまりにも長い間XCodeに対して頭を叩きました。

    +1

    私に起こりました。管理オブジェクトクラスを再生成しましたが、プロジェクト内の同じファイルへの参照が2つになったターゲットフォルダを変更するのを忘れました。 –

    関連する問題