Xcode static analyzer and copyWithZone
The Xcode 4 static analyzer flags this method as a having an over-released return value when that does not seem to be the case.
- (id)copyWithZone:(NSZone *)zone
{
return [[[self class] allocWithZone:zone] initWithURL:self.url postString:self.postString];
}
There is an arrow pointing from the return keyword to the expression following it, and another from that expression to the analyzer warning. Here is the static analysis:
Is the static analyzer incorrect or is there something wrong with this code?
By request, the -initWithURL:postString:
method:
- (id)initWithURL:(NSURL *)u postString:(NSString *)p
{
if ( (self = [super init]) )
{
self.url = u;
self.postString = p;
}
return self;
}
I continue to get this warning even after cleaning and rebuilding the project.
UPDATE: The Xcode static analyzer no longer flags this as an issue after upgrading to Xcode 4.2.
That's a bug in Xcode. The code is alright.
链接地址: http://www.djcxy.com/p/7598.html