在NSManagedObject
子类中实现时,awakeFromInsert
方法即awakeFromFetch
,NSManagedObject
等未被调用。可能是什么原因?实体“类”在实体模型编辑器中设置为子类。
Event.m
#import "Event.h"
@implementation Event
@dynamic timeStamp;
- (void)awakeFromInsert {
NSLog(@"%s", __FUNCTION__);
[super awakeFromInsert];
}
- (void)awakeFromFetch {
NSLog(@"%s", __FUNCTION__);
[super awakeFromFetch];
}
@end
MyViewController(插入)
- (void)insertNewObject:(id)sender {
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[newManagedObject setValue:[NSDate date] forKey:@"timeStamp"];
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
这是模型编辑器的屏幕截图。
注意:我在Mountain Lion上使用Xcode 4.4.1(iOS SDK 5.1),使用ARC ON。
答案 0 :(得分:4)
确保将您的类添加到目标中,并确保在模型中指定它们。如果您没有在模型中指定子类,则每个实体,您在目标中包含类是无关紧要的;你只需要处理一个NSManagedObject。