我可以将刚刚插入的ManagedObject分配给自己吗?

时间:2011-10-10 13:22:41

标签: objective-c cocoa core-data

我有以下工厂方法。我只是想知道作业是否

self = [NSEntityDescription insertNewObjectForEntityForName:entityName 
inManagedObjectContext:[self managedObjectContext]];

是正确的,因为我的类是NSManagedObject的子类

感谢

+ (CBItem *)insertEntityForName:(NSString*)entityName fromXMLElement:(NSXMLElement*)xmlElement withQueryType:(CBSearchQueryType)queryType inContext:(NSManagedObjectContext *)inContext

...

self = [NSEntityDescription insertNewObjectForEntityForName:entityName 
inManagedObjectContext:[self managedObjectContext]];

... 

return self;

2 个答案:

答案 0 :(得分:2)

不,这不正确。您只能在self方法中指定init。对于工厂类型方法,您应该返回一个变量,例如

CBItem* newItem = [NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:[self managedObjectContext]];

//Other stuff

return newItem;

答案 1 :(得分:0)

self in a class方法(用+而不是 - 声明)引用类对象。虽然,一旦在任何方法中,自我就像一个局部变量。您可以将它重新分配给您想要的任何内容,只要您不希望它继续像通常所说的那样继续行动。所以你所做的事情不会被打破,尽管它可能会让人感到困惑。