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

时间:2016-06-24 16:55:23

标签: ios objective-c 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]"
}

我不确定如何搜索解决方案,我尝试搜索的内容并不涵盖传递参考和设置其他方法。我也尝试过NSMutableString,但这似乎没有任何区别。

提前谢谢!

编辑:我忘了提及我已尝试使用error = [error stringByAppendingString:...],但这也无效。

1 个答案:

答案 0 :(得分:0)

您没有通过引用传递。

你必须做

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

[self doStuffThatCouldProduceAnError:&error];