2016-06-24 3 views
0

У меня есть метод, который принимает NSString по ссылке, и идея в том, что если возникает ошибка, строка будет содержать конкретное сообщение об ошибке; в противном случае это будет ноль.Установить NSString по ссылке из другого метода

-(BOOL)doStuffThatCouldProduceAnError:(NSString *)error { 
    ... 
    // An error occurred, so set the string 
    error = @"Foo Bar is invalid" 
    return NO; 
} 

Но проблема в том, вызывающий doStuffThatCouldProduceAnError не видит сообщение об ошибке:

-(void)someMethod { 
    NSString *error; 
    [self doStuffThatCouldProduceAnError:error]; 
    [NSLog @"Message: %@", error]; // Logs "[nil]" 
} 

я не уверен, как искать решения, и то, что я пытаюсь найти on не охватывает передачу по ссылке и настройку с помощью другого метода. Я также пробовал NSMutableString, но это, похоже, не имеет никакого значения.

Спасибо заранее!

Редактировать: Я забыл упомянуть, что я пробовал использовать error = [error stringByAppendingString:...], но это тоже не сработало.

ответ

0

Вы не проходите мимо ссылки.

Вы должны сделать

-(BOOL)doStuffThatCouldProduceAnError:(NSString **)error { 
    *error = @"Foo Bar is invalid" 

и

[self doStuffThatCouldProduceAnError:&error]; 
+0

Спасибо! Это сделало трюк для меня. – dohpaz42

+0

Тест на 'NULL' перед разыменованием. –

 Смежные вопросы

  • Нет связанных вопросов^_^