核心数据会产生分析器警告
我正在做一个应用程序的最后修改,我摆脱了每一个编译器/分析器的警告。
我有一堆将我的应用程序访问到Core Data实体的Class方法。 这是“挑衅”分析仪。
+ (CDProductEntity*) newProductEntity {
return (CDProductEntity*)[NSEntityDescription insertNewObjectForEntityForName:@"CDProductEntity" inManagedObjectContext:[self context]];
}
这会导致分析器警告:
带有+0保留计数的对象返回给调用者,其中+1(拥有)保留计数是预期的
在调用上述类方法的方法中,我有这样的:
CDProductEntity *newEntity = [self newProductEntity];
这会导致分析器警告:
方法返回一个带有+1保留计数的Objective-C对象(拥有引用)
显式释放或自动释放核心数据实体通常非常糟糕,但它是这样要求我在这里做什么? 首先它告诉我它有一个+0的保留计数,这是不好的,然后它告诉我它有一个+1也是不好的。
我可以做些什么来确保我处理分析器打嗝或我正确释放?
提前致谢
静态分析器抱怨的问题可能出现在你的方法名称中 - 根据obj-c命名约定,在其名称中使用alloc,new或copy的方法预计会返回调用者拥有且必须释放的对象,并且您的方法返回自动释放对象。
来自文档的引用:
您拥有您创建的任何对象。
您使用名称以“alloc”或“new”开头或包含“copy”(例如alloc,newObject或mutableCopy)的方法“创建”一个对象。
因此,一开始尝试,我建议只从方法名称中删除“新”
链接地址: http://www.djcxy.com/p/43731.html上一篇: Core Data produces Analyzer warnings
下一篇: function