如何为子类NSManagedObject正确实现自定义初始值设定项

时间:2011-06-01 05:54:44

标签: iphone objective-c ios core-data nsmanagedobject

我想知道正确的方法是创建我自己的子类NSManagedObject的初始化器。

目前我正在初始化:

-(id)initWithXML:(TBXMLElement *)videoXML
{
    // Setup the environment for dealing with Core Data and managed objects
    HenryHubAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *context = [appDelegate managedObjectContext];
    NSEntityDescription *entityHubPieceVideo = [NSEntityDescription entityForName:@"HubPieceVideo" 
                                                           inManagedObjectContext:context];

    self = [[HubPieceVideo alloc] initWithEntity:entityHubPieceVideo insertIntoManagedObjectContext:context];
    // do stuff and then save

    NSError *error;
    if(![context save:&error]) 
    {
        NSLog(@"HubPiece video save context error: %@ %@", error, [error userInfo]); 
    }
}

似乎some其他also这样做。

1 个答案:

答案 0 :(得分:0)

刚发现NSManagedObject reference说:

  

如果您实例化托管对象   直接,您必须致电指定   初始化   (initWithEntity:insertIntoManagedObjectContext:)。