NSManagedObject
サブクラスのカスタムinit
をどのようにコードすることができますか?私は例えばinitItemWithName:Volume:
のようなものが欲しいです。 Item
はNSManagedObject
サブクラスで、2つの属性、name
とvolume
です。NSManagedObjectサブクラスのカスタムinit
答えて
カルロス、
ネナドミハイロビッチは、あなたがこのためにカテゴリを作成することができます示唆し通り。
たとえば、Item
クラスがある場合は、Item+Management
というカテゴリを作成してそこに作成コードを入れることができます。ここで簡単な例を見つけることができます。
// .h
@interface Item (Management)
+ (Item*)itemWithName:(NSString *)theName volume:(NSNumber*)theVolume inManagedObjectContext:(NSManagedObjectContext *)context;
@end
// .m
+ (Item*)itemWithName:(NSString *)theName volume:(NSNumber*)theVolume inManagedObjectContext:(NSManagedObjectContext *)context
{
Item* item = (Item*)[NSEntityDescription insertNewObjectForEntityForName:@"Item" inManagedObjectContext:context];
theItem.name = theName;
theItem.volume = theVolume;
return item;
}
あなたは、新しいアイテムを作成
#import "Item+Management.h"
のようなインポートを行うと、このアプローチは非常に柔軟で、中に維持することは非常に容易である。この
Item* item = [Item itemWithName:@"test" volume:[NSNumber numberWithInt:10] inManagedObjectContext:yourContext];
// do what you want with item...
のように使用したいですアプリ開発。
さらに詳しい情報はStanford Course Lecture 14コードサンプルをご覧ください。さらに、StanfordによるiTunesの無料ビデオもご覧ください(Apple IDをお持ちの場合)。
希望に役立ちます。
P.S.わかりやすくするために、私はname
がNSString
であり、volume
がNSNumber
であると仮定します。 volume
の場合は、NSDecimalNumber
タイプを使用する方が良いかもしれません。
ありがとうFlex_Addicted多くの!しかし、1つの質問:NSManagedObjectサブクラスではなく、カテゴリでこれらのメソッドを作成する必要があるのはなぜですか?私にはいくつかのクラスがあり、少なくとも7つのカテゴリが必要です。 – Carlos
http://stackoverflow.com/questions/9297101/nsmanagedobjects-with-categoriesおよびhttp://blog.chrismiles.info/2011/06/organising-core-data-for-ios.htmlで情報を見つけることができます。 (私は非常に後者のヒントが好きです)。 Xcodeを使用して管理対象オブジェクトのカスタムクラスを生成する場合の簡単な説明:エンティティ内の何かを変更してその変更に対応するクラスを生成すると、元のサブクラスで記述したコードが上書きされます。 –
どうもありがとう!! – Carlos
- 1. Init NSManagedObjectサブクラス
- 2. Swift CoreData NSManagedObjectサブクラス
- 3. NSManagedObjectのサブクラスをプロトコル
- 4. NSManagedObjectのサブクラスとsetValuesForKeysWithDictionary:
- 5. NSManagedObjectサブクラスの悩み
- 6. UICollectionViewCellサブクラスのinit ... ...
- 7. NSManagedObjectサブクラスの汎用タイプ
- 8. Xcode generate NSManagedObjectサブクラスの問題
- 9. NSManagedObjectサブクラスの重複シンボルエラー
- 10. NSManagedObjectをサブクラス化する
- 11. NSManagedObjectサブクラスにivarを追加
- 12. UNNotificationCategoryサブクラスinit発行
- 13. サブクラスでのinitのオーバーライド
- 14. NSManagedObjectサブクラスのカスタムクラスのインスタンス変数
- 15. データモデル更新後のNSManagedObjectサブクラスの更新
- 16. NSManagedObjectサブクラス(CoreData)の数値のKVC準拠
- 17. Xcode 4:NSManagedObjectのサブクラスを置換する
- 18. NSManagedObjectのサブクラスをエンコードできますか?
- 19. NSManagedObjectのサブクラスがそう宣言
- 20. CoreData - NSManagedObject(ジェネレーションギャップパターン)のサブクラスのサブクラスを作成する方法
- 21. NSManagedObjectをサブクラス化オブジェクトにキャストする
- 22. タイプをidからサブクラス化nsmanagedobject
- 23. 新しいNSManagedObjectサブクラスと新しいNSObjectサブクラス?
- 24. カスタムinitメソッド
- 25. カスタムSCNViewのinitメソッド
- 26. SwiftからNSOperationsサブクラスのObj CカスタムInitメソッドを呼び出す方法
- 27. objective-Cのカスタムinitメソッド
- 28. 管理対象外のNSManagedObjectサブクラスが通常のオブジェクトとして
- 29. カスタムUIControlサブクラスとRxSwift
- 30. NSManagedObjectをサブクラス型にキャストする際の問題
次の質問http://stackoverflow.com/questions/10489578/custom-initializer-for-an-nsmanagedobjectをご覧ください。 私はおそらくお手伝いします。 –
@NenadMihajlovic +1。良いコメント! –