忽略返回值是否可以?

时间:2011-04-30 19:05:16

标签: objective-c

例如,我有一个工厂方法,它设置一个UIView并将其添加为子视图,然后返回实例。但在某些情况下,我不关心返回什么。那么我可以调用该方法并忽略它返回的内容吗?

[self addUIViewWithRect:rect];

而不是

UIView *theView = [self addUIViewWithRect:rect];

是的似乎有效,但这并不意味着它真的有效,也并不意味着它是好的。所以我想确定一下。

2 个答案:

答案 0 :(得分:2)

没关系。只要您不忽略非自动发布的退货,您就可以了。

答案 1 :(得分:2)

它完全取决于上下文,以及返回值的方法的实现。

凯文说,你需要确保你的引用计数是正确的。

在objc中,返回值vs nil通常可用于指示错误。检查这样的错误情况是个好主意,并验证程序是否正常工作。在这种情况下,您的superview可能已经实现了一些逻辑来检测错误,返回nil可能用于指示遇到错误,并且未添加视图。是否可以忽略它或不应忽略它取决于程序的上下文。

如果您选择忽略它,则必须根据具体情况采取每种方法,并考虑该方案的背景。

但在许多情况下忽略它们并不常见,请采用这个常见的(C)示例:

printf("stuff"); // << retval ignored