coredata NSEntityDescription中的内存管理

时间:2013-06-01 07:47:30

标签: ios core-data

我正在手动创建一个CoreData实体描述(对于我正在编写的库),我正在使用这样的语言:

NSEntityDescription * entity = [[NSEntityDescription alloc] init];
[entity setName:@"Name"];
[entity setManagedObjectClassName:@"Name"];

NSAttributeDescription * att = [[NSAttributeDescription alloc] init];
[att setName:@"att"];
[att setAttributeType:NSStringAttributeType];
[entity setProperties:@[att]];

coreDataModel = [[NSManagedObjectModel alloc] init];
[coreDataModel setEntities:@[entity]];

coreDataModel是我班级的实例变量:我在dealloc方法中发布它。但是,XCode的Analyze抱怨我可能会泄漏NSEntityDescriptionNSAttributeDescription。我在文档中找不到任何可以安全释放它们的内容:任何人都知道NSManagedObjectModel是否保留必要,或者我是否需要将它们保留在自己身边?

2 个答案:

答案 0 :(得分:0)

你分配init它们,你释放它们。您将它们添加到一个数组,然后传递给MOM,这将使对象保持活动

答案 1 :(得分:-1)

至少你将这些对象添加到集合中,在这种情况下是NSArray。 Cocoa中的所有集合都保留了它们所拥有的对象,因此您可以在设置模型实体后无需担心地释放它们。

无论如何,静态分析仪“过度反应”;)如果您对泄漏内存有任何疑问,请使用仪器。