我正在手动创建一个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抱怨我可能会泄漏NSEntityDescription
和NSAttributeDescription
。我在文档中找不到任何可以安全释放它们的内容:任何人都知道NSManagedObjectModel
是否保留必要,或者我是否需要将它们保留在自己身边?
答案 0 :(得分:0)
你分配init它们,你释放它们。您将它们添加到一个数组,然后传递给MOM,这将使对象保持活动
答案 1 :(得分:-1)
至少你将这些对象添加到集合中,在这种情况下是NSArray。 Cocoa中的所有集合都保留了它们所拥有的对象,因此您可以在设置模型实体后无需担心地释放它们。
无论如何,静态分析仪“过度反应”;)如果您对泄漏内存有任何疑问,请使用仪器。