【发布时间】:2014-11-21 10:51:21
【问题描述】:
这是我在我的类 XXObject 上的方法
+ (XXObject*)objectWithValuesFromFromXml:(struct _TBXMLElement *)element
{
XXObject *object = [[XXObject alloc] init];
...
return object;
}
XCode 说Potential leak of an object stored in 'object'。
详细信息说“3. 对象泄漏:分配并存储到 'object' 中的对象是从名称 ('objectWithValuesFromXml:') 不以 'copy'、'mutableCopy、'alloc' 或 'new 开头的方法返回的'。这违反了命名约定……”
但是文档()说“工厂方法的名称具有以下初始形式:
+ (id)typeRemainderOfMethodName
其中 type 是类名减去前缀,RemainderOfMethodName 通常以 With 或 From 开头。"
我能做什么?
【问题讨论】:
-
调用方法
xXObjectWithValuesFromFromXml? “减去前缀”究竟是什么意思? -
您使用的是 ARC 还是 MRC?
-
我没有使用 ARC。什么是 MRC?
-
手动引用计数。有时也称为 MRR(手动保留和释放)。
-
不,autorelease 将在自动释放池耗尽时释放对象(即您返回到运行循环)。但是调用此方法的任何人都可以安全地保留此对象并将其用于自己的目的。
标签: ios xcode memory-leaks