CoreData抽象实体和方法被重写

时间:2014-09-19 16:35:03

标签: ios objective-c core-data override

如果我有两个CoreData实体:

  • 抽象实体A
  • 实体B,其中A实体A为父级。

假设我在实体A的实现中定义了这个方法。

- (NSString*) myHello;

.m

-(NSString*) myHello
{
  return @"Hi, I'm custom hello message...";
}

在B实体实现中,我可以覆盖此方法:

.m

-(NSString*) myHello
{
  NSString *parentMessage = [super myHello];
  return  [NSString stringWithFormat:@"%@ - %@"], parentMessage, @" SubHello";
}
这可能吗?很好?特别是它如何对建设者起作用? 如果我想在我的实体B中重新定义构造函数,我可以使用self = [super ....]吗?

1 个答案:

答案 0 :(得分:0)

是的,这完全没问题。另一件事就是在每个实体上创建类别。这样,当您从核心数据重新生成这些实体时,您将不会失去所有自定义工作。

A + CustomMessage.m:

-(NSString*) myHello
{
    return @"Hi, I'm custom hello message...";
}

B + CustomMessage.m:

-(NSString*) myHello
{
    NSString *parentMessage = [super myHello];
    return  [NSString stringWithFormat:@"%@ - %@"], parentMessage, @" SubHello";
}

然后你通常会导入任何地方" A.h"和" B.h"只需导入" A + CustomMessage.h"和" B + CustomMessage.h"