Creating NSManagedObject Subclasses – So Handy, Yet So Strange

If you are a Core Data user, you’ll likely become intimately familiar with NSManagedObject and the Core Data model editor.

One aspect of NSManagedObject is the the creation of NSManagedObject subclasses. The only way I have found to (automatically) do this is to select your entities, then go to Editor -> Create NSManagedObjectSubclass.

Why on earth is ‘Create NSManagedObject Subclass’ a global menu item? And why is it in the ‘Editor’ menu? Whose brilliant idea was it to have a global menu item for something so incredibly specific to a particular portion of a particular screen? Why is generating code from your Core Data model so completely non-discoverable? Why isn’t there a ‘Create NSManagedObject Subclass’ button right next to the ‘Add Entity’ button?

And those are just my issues with the placement of the functionality. So aside from that, how well does it actually work?

In my limited usage so far, I would say that it’s marginally useable.

First of all, having to perform a manual process in order to keep your data model and your object model in sync is pointless. By contrast, when you edit an Entity Framework EDMX file or a LINQ to SQL DBML file, your object model classes are automatically regenerated. And hey, if you’re using EF Code-First, there’s nothing else you need to do!

Second, the code generation itself seems… inflexible. As far as I can tell, there is absolutely nothing remotely similar to .TT files in Xcode/Core Data. For those unfamiliar with the Visual Studio world, a .TT file is essentially a template that can describe, among other things, how classes are generated from a data model. You can customize a .TT file so that the generated classes look exactly like you want them to – add in validation attributes, extra fields, property change notifications, and so on. This standard functionality in EF/VS, but doesn’t seem to exist in Xcode.

In order to something similar, it appears that you need a third-party tool such as mogenerator. Now it’s great that such a tool exists, but it’s sad that it needs to exist. Customization of generated code is a pretty basic IDE feature these days, and it’s yet another area where Xcode falls short of the competition.

On another code generation note, it’s quite amusing that Xcode can’t even remember what group I previously added the NSManagedObject subclasses to, forcing me to manually select it every time I change my data model.

4 Comments

  1. 日本スーパーコピーブランド時計販売店日本時計スーパーコピーを買うなら質屋がお得。ロレックススーパーコピー、ガガ?ミラノコピー、ブルガリ偽物、フランクミュラーレプリカ、
    スーパーコピー時計販売はコピーガガミラノ通販専門店です . 0.106072179 レプリカガガミラノの私は(私がオンラインで見つける大丈夫、ランダマイザ)大きなふわふわサンタの帽子の中にすべてのaBlogtoWatchチームメンバーの名前を入れて、ランダムに彼らは匿名で2014年からガガミラノの時計を選ぶだろう誰のために相互に各チームメンバーをペアに名前を描いた私はその後、それぞれに通知彼らは「買い物」のためだった、と彼らに “贈り物”を選択し、彼らはその人のためにその時計を選んだ理由について書くための期限を与えた人物 . スーパーコピーガガミラノ時計豊富な品揃えで最新作も随時入荷致しております のでごゆっくりとご覧ください。☆ ガガミラノ時計税関の没収する商品は再度無料にして発送します☆ 送料無料 . http://www.bagkakaku.com/bvlgari_wallet.html

    Reply

  2. フランス語で「舷窓」を意味するブランド名通り、ウブロスーパーコピーはビス留めのベゼルをシンボルとする時計界の風雲児的なブランドです。1980年創業の新しいブランドで、デビュー早々ゴールドケースにラバーストラップを組み合わせるという当時としては”常識破り”の「スポーツ1520」を発表し、一大センセーションを巻き起こしました。その最初の顧客が軍事クーデターで国を追われた元ギリシャ国王コンスタティノス2世であったことも、伝説的な語り草です。キッチュとも言える組み合わせの妙は、正当的な高級時計に飽きた王族などの上流階級に大人気となり、ウブロ時計コピーは”王の時計”とも呼ばれました。 フュージョン=融合をコンセプトとするウブロは、その後も伝統的な時計作りと革新的な発送を融合させて”常識破り”のウォッチを発表し続けています。ゴールドとラバーの組み合わせが他社に追随されると、今度はタンタリウムのケースにチタンのビス、タングステンの自動巻ローターといった仕掛けを施し、さらには文字盤も目盛りも針も真っ黒という「オールブラック」モデルで意表をつくなど、常にスーパーコピー腕時計の世界に新風を吹き込んでいます。 http://www.ooobag.com/watch/panerai/65f31967a874d183.html

    Reply

  3. さらに中国を理解した贅沢表プレート、今年はきっと面白いや劇的な一年。スーパーコピー時計最近発表の席であることがLuxury Index™チャイナ:Watches(世界高級品インデックス、中国:腕時計)を評価の市場の週波数、各ブランドの明暗や、お客様の気持ちも理解を提供するチャンス。 http://www.wtobrand.com/pr1.html

    Reply

  4. 非常に優美かつ独特で、ずっと優雅な姿で潮流の最高峰に立って、流行に引率して 豪華スーパーコピーブランドお楽しみください!弊社は個性あふれるブランドコピー、すばらしい デザインと高品質を兼ね備えるスーパーコピーバッグ、優雅の魅力があるのスーパーコピー財布など人気商品が続々入荷! http://www.bestevance.com/rolex/explorer/index.htm

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *