我正在手动创建一个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是否会在必要时保留,或者我需要自己保留它们吗?
发布于 2013-06-01 16:15:12
至少您可以将这些对象添加到集合中,在本例中为NSArray。Cocoa中的所有集合都保留它们持有的对象,因此在设置模型实体后,您可以放心地释放它们。
无论如何,静态分析器有时会“反应过度”;)如果您对内存泄漏有任何怀疑,请使用Instruments。
发布于 2013-06-01 16:35:11
你先初始化它们,然后再释放它们。您将它们添加到一个数组中,然后将该数组传递给MOM,这将使对象在那里保持活动状态
https://stackoverflow.com/questions/16870399
复制相似问题