通过从另一个方法引用设置 NSString

Set NSString by reference from another method

我有一个通过引用接受 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]"
}

我不确定如何搜索解决方案,而且我尝试搜索的内容不包括通过引用传递和从另一种方法设置。我也尝试过 NSMutableString,但这似乎没有任何区别。

提前致谢!

编辑:我忘了说我试过使用 error = [error stringByAppendingString:...],但也没用。

您没有通过引用传递。

你必须做

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

[self doStuffThatCouldProduceAnError:&error];