3

我是新手core data,我正在努力了解如何使用NSManagedObjects. 基本上我有几个我打算使用存储的对象core data(它们彼此有关系)。

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

我的问题是我是否可以将逻辑从 3NSObjects直接转移到 3NSManagedObjects然后像在我的原始设计中那样使用它们(还有能够轻松持久化它们的额外好处),或者我是否需要将两者都保留NSObjects为以及NSManagedObject.

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

提前致谢!

4

2 回答 2

8

由于NSManagedObject继承自NSObject,因此如果您只是将自定义类的超类从NSObjectto更改为 - 就不会失去功能NSManagedObject- 前提是您没有与NSManagedObject. 这样您就不必保留原始类,从而使代码更清晰,逻辑更简单。

于 2012-11-18T20:36:42.783 回答
6

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

报价+本地化.h:

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

报价+本地化.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
于 2012-11-19T00:17:38.880 回答