通过从另一个方法引用设置 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];
我有一个通过引用接受 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];