核心数据:在哪里放awakeFromFetch和awakeFromInsert?

Ale*_*exR 4 core-data objective-c nsmanagedobject ios objective-c-category

我想覆盖awakeFromFetchawakeFromInsert.

当我保持自动生成的NSManagedObject子类不变并将我的自定义代码放入类别时,我的问题是:

我在哪里放置awakeFromFetchawakeFromInsert正确调用这些方法?

Mar*_*n R 8

如果您的托管对象子类文件是由Xcode生成的,那么您还可以将这些方法放在托管对象子类的类别中,以便在Xcode中重新生成类文件时不会覆盖代码.

myEntity所+ Extensions.h

#import "MyEntity.h"

@interface MyEntity (Extensions)
@end
Run Code Online (Sandbox Code Playgroud)

myEntity所+ Extensions.m

#import "MyEntity+Extensions.h"

@implementation MyEntity (Extensions)

- (void)awakeFromFetch
{

} 

- (void)awakeFromInsert
{

}
@end
Run Code Online (Sandbox Code Playgroud)

  • @AlexR:如果多个类别实现相同的方法,那么你无法预测哪一个被调用,所以这绝对不是一个好主意. - 在我的代码中,每个托管对象子类只有一个类别,它包含所有自定义方法和来自`NSManagedObject`的重写方法. (2认同)