通过从另一个方法引用设置 NSString
Posted
技术标签:
【中文标题】通过从另一个方法引用设置 NSString【英文标题】:Set NSString by reference from another method 【发布时间】:2016-06-24 16:55:23 【问题描述】:我有一个通过引用接受 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】:你不是通过引用传递的。
你必须这样做
-(BOOL)doStuffThatCouldProduceAnError:(NSString **)error
*error = @"Foo Bar is invalid"
和
[self doStuffThatCouldProduceAnError:&error];
【讨论】:
在取消引用之前测试NULL
。以上是关于通过从另一个方法引用设置 NSString的主要内容,如果未能解决你的问题,请参考以下文章
如何从同一 YAML 文件的其他地方引用 YAML“设置”?