首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >coredata NSEntityDescription中的内存管理

coredata NSEntityDescription中的内存管理
EN

Stack Overflow用户
提问于 2013-06-01 15:47:30
回答 2查看 89关注 0票数 0

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

代码语言:javascript
复制
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是否会在必要时保留,或者我需要自己保留它们吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-01 16:15:12

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

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

票数 -1
EN

Stack Overflow用户

发布于 2013-06-01 16:35:11

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16870399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档