通过从另一个方法引用设置 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“设置”?

如何通过从另一个下拉列表中选择值来填充下拉列表?

添加列通过从sql Server中的另一个表中选择所有项目来选择表

使用两个数据帧计算最终值pandas

通过从 flex 中的另一个 mxml 文件访问组件来使组件不可见