English 中文(简体)
+0的标的重新计值,如果预计有+1(原封面)的保值,则重新计值。
原标题:Object with +0 retain counts returned to caller where a +1 (owning) retaincount is expected

我有一套由www.sudzc.com创建的班级(WDSL网络服务代理创建工具,用于Piter/Flex/Javascript)。

在我管理CMD+SHIFT+A时,我收到以下信息:

Object with +0 retain counts returned to caller where a +1 (owning) retain count is expected

这里是将这一信息归还给:

// Static method for initializing from a node.
+ (id) newWithNode: (CXMLNode*) node
{
    return (id)[[[SoapObject alloc] initWithNode: node] autorelease];
}

我不想向这一守则发出信息,随着网络服务的变化和我需要更新代用班,将需要通过该项目多次加以更新。

任何想法?

提前感谢。

son

最佳回答

该分析员抱怨说,memory management Guide.

贵方使用“准许”或“新”或含有“范围”的方法,“准许”物体。

可可和目标C严重依赖公约,因此,你应尽一切努力这样做。 以“警告为错误”,解决问题。 虽然你可能是目前唯一从事这项工作的人,但如果另一个开发商在任何时间都使用你的方法,他们很可能遵循记忆管理准则,最终将使用这种方法退还的物体(和照相机) over倒。

问题回答

这种方法被标出,因为方法名称有新的预先规定。 静态分析器只是评论说,采用通常的命名公约的方法,人们会期望这种方法能够归还你打算释放的物体,而不是自动释放的物体。

“正常”命名公约,例如,将这种方法与类别名称挂钩,例如,如果该方法被定义为一个称为“植被”的类别:

@interface Widget : NSObject {
}
+ (id)widgetWithNode:(CXMLNode*)node; // Returns an object that has been autoreleased.
- (id)initWithNode:(CXMLNode*)node; // Returns an object you are expected to release.
@end

如果你正确使用这种方法(即,你重新说明它归还自动释放的物体的事实),那么你只能无视这一警告。

如果你有某种方法名称,在其中必须具有“新”或“影印”等内容,而且你知道这种警告是无效的,那么你就可以消除这一警告,把对LOSS的指针列入其中,即这一类别实际上是科索沃。

在你的主人档案中,首先添加(通常在顶点附近,但可能任何地方):

#ifndef __has_feature      // Optional.
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
#endif

#ifndef NS_RETURNS_NOT_RETAINED
#if __has_feature(attribute_ns_returns_not_retained)
#define NS_RETURNS_NOT_RETAINED __attribute__((ns_returns_not_retained))
#else
#define NS_RETURNS_NOT_RETAINED
#endif
#endif

之后,在你方法声明的末尾加上:

+ (id) newWithNode: (CXMLNode*) node NS_RETURNS_NOT_RETAINED;

您可以找到一份其他内容(真实属性)的清单,供您通过。

rel=“nofollow noreferer”>http://clang-analyzer.llvm.org/annotations.html





相关问题
Code sign Error

I have created a new iPhone application.I have two mach machines. I have created the certificate for running application in iPhone in one mac. Can I use the other mac for running the application in ...

ABPersonViewController Usage for displaying contact

Created a View based Project and added a contact to the AddressBook using ABAddressBookRef,ABRecordRef now i wanted to display the added contact ABPersonViewController is the method but how to use in ...

将音频Clips从Peter改为服务器

我不禁要问,那里是否有任何实例表明从Peit向服务器发送音响。 I m不关心电话或SIP风格的解决办法,只是一个简单的袖珍流程......

• 如何将搜查线重新定位?

我正试图把图像放在搜索条左边。 但是,问题始于这里,搜索条线不能重新布署。

热门标签