0

我正在手动创建一个 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 的分析抱怨我可能会泄漏NSEntityDescriptionand NSAttributeDescription。我在文档中找不到任何可以安全释放它们的内容:任何人都知道是否需要NSManagedObjectModel保留,还是我需要将它们保留在自己身边?

4

2 回答 2

0

你分配初始化它们,你释放它们。您将它们添加到一个数组中,然后将其传递给 MOM,这将使对象在那里保持活动状态

于 2013-06-01T08:35:10.900 回答
-1

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

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

于 2013-06-01T08:15:11.797 回答