2012-11-18 57 views
3

我是core data的新手,我试着让我的脑袋围绕如何使用NSManagedObjects。基本上我有几个对象,我打算使用core data(它们之间有相互关系)进行存储。我可以像处理常规NSObject一样处理NSManagedObject吗?

之前寻找到核心数据我写了由3 NSObjects一个基本模型,我现在已经创建了一个core data model从这个模型生成3 NSManagedObjects。我在我现有的3 NSObjects(例如指定的初始化程序和专门的getter和setter)中有一些逻辑,我仍然想使用它。

我的问题是,是否我可以从3 NSObjects直接传输逻辑到3 NSManagedObjects然后在我原来的设计中使用它们,因为我会(具有能够很容易地坚持他们额外的奖励),还是我需要保留NSObjects以及NSManagedObject

请有人建议最佳的设计实践,我想保持我的代码尽可能干净和结构良好。

在此先感谢!

回答

8

由于NSManagedObjectNSObject继承,你这样做,如果你只是你的自定义类的超从NSObjectNSManagedObject改变不松动的功能 - 只要你没有那个与的NSManagedObject碰撞方法/属性名称。这样你就不必保持原有的类,使代码更清晰,逻辑更简单。

6

当我必须为NSManagedObject添加额外的功能时,我创建类别并将其保存在单独的文件中,因为当我修改.xcdatamodeld文件时,我通常会覆盖NSManagedObject子类而不是手动更新更新文件。

发售+ Localized.h:

#import "Offer.h" 
@interface Offer (Localized) 
- (NSString *) localizedPrice; 
@end 

发售+ Localized.m:

@implementation Offer (Localized) 

- (NSString *) localizedPrice; 
{ 
    if (self.price > 0) { 
     return [NSString stringWithFormat:NSLocalizedString(@"Price: %d", nil), self.price]; 
    } else { 
     return NSLocalizedString(@"Free", nil); 
    } 
} 

@end 
相关问题