Я понимаю, что это похоже на существующий здесь пост, В чем суть ошибки (NSError **)? , но мой вопрос немного другой. Я понимаю, как работает двойной указатель, и как это распространенный образец ошибок API iOS. Мой вопрос больше касается одного указателя и почему этот код не работает:
- (BOOL)someMethodWithError:(NSError *)error
{
...
if( errorOccured )
{
NSError *e = [[[NSError alloc] initWithDomain:@"" code:1 userInfo:nil] autorelease];
error = e;
return NO;
}
return YES;
}
реализовано с использованием:
NSError *error = nil;
if( ![someObj someMethodWithError:error] )
{
NSLog(@"Error: %@", [error localizedDescription]);
}
Почему назначение в реализации метода не переназначает указатель на новый объект NSError?