Статический анализатор Xcode 4 помечает этот метод как имеющий чрезмерно высвобожденное возвращаемое значение, когда кажется, что это не так.
- (id)copyWithZone:(NSZone *)zone
{
return [[[self class] allocWithZone:zone] initWithURL:self.url postString:self.postString];
}
Здесь есть стрелка, указывающая от ключевое слово return - в следующее за ним выражение, а другое - из этого выражения в предупреждение анализатора. Вот статический анализ:
Является ли статический анализатор неверным или что-то не так с этим кодом?
По запросу, метод -initWithURL: postString:
:
- (id)initWithURL:(NSURL *)u postString:(NSString *)p
{
if ( (self = [super init]) )
{
self.url = u;
self.postString = p;
}
return self;
}
Я продолжаю получать это предупреждение даже после очистки и пересборки проекта.
ОБНОВЛЕНИЕ: Статический анализатор Xcode больше не отмечает это как проблему после обновления до Xcode 4.2.