核心数据会产生分析器警告

我正在做一个应用程序的最后修改,我摆脱了每一个编译器/分析器的警告。

我有一堆将我的应用程序访问到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