我有一个通过引用接受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:...]
,但这也无效。
答案 0 :(得分:0)
您没有通过引用传递。
你必须做
-(BOOL)doStuffThatCouldProduceAnError:(NSString **)error {
*error = @"Foo Bar is invalid"
和
[self doStuffThatCouldProduceAnError:&error];