【发布时间】:2012-03-30 16:32:34
【问题描述】:
我只是稍微清理一下我的代码,我发现函数中有几行我不确定它们是否会产生内存泄漏。 我会很感激任何想法。
提前致谢!
在下面的代码中,变量文件路径是一个 NSURL,文件名是一个定义为属性的 NSString 对象。定义属性设置为“复制”。 这是代码:
-(BOOL)isEqual:(id)object
{
if ( self == object)
return YES;
if (!object || ![object isKindOfClass:[self class]])
return NO;
if ( ![[[self filepath] path] isEqual:[[object filepath] path]])
return NO;
if (![[self filename] isEqualToString:[object filename]])
return NO;
if (![[self filesize] isEqualToString:[object filesize]])
return NO;
if (![[[self filepath ] absoluteURL] isEqual:[[object filepath] absoluteURL]])
return NO;
if ( !([[[self filepath ] absoluteURL ] isFileURL ] && [[[object filepath] absoluteURL ] isFileURL ]))
return NO;
return YES;
}
据我了解,具有 copy 属性的属性将返回保留计数为 +1 的对象。这意味着,我应该在每个 if 语句上都有内存泄漏。 它是否正确?
【问题讨论】:
标签: cocoa memory-management properties retain