例如,我有一个工厂方法,它设置一个UIView并将其添加为子视图,然后返回实例。但在某些情况下,我不关心返回什么。那么我可以调用该方法并忽略它返回的内容吗?
[self addUIViewWithRect:rect];
而不是
UIView *theView = [self addUIViewWithRect:rect];
是的似乎有效,但这并不意味着它真的有效,也并不意味着它是好的。所以我想确定一下。
答案 0 :(得分:2)
没关系。只要您不忽略非自动发布的退货,您就可以了。
答案 1 :(得分:2)
它完全取决于上下文,以及返回值的方法的实现。
凯文说,你需要确保你的引用计数是正确的。在objc中,返回值vs nil通常可用于指示错误。检查这样的错误情况是个好主意,并验证程序是否正常工作。在这种情况下,您的superview可能已经实现了一些逻辑来检测错误,返回nil可能用于指示遇到错误,并且未添加视图。是否可以忽略它或不应忽略它取决于程序的上下文。
如果您选择忽略它,则必须根据具体情况采取每种方法,并考虑该方案的背景。
但在许多情况下忽略它们并不常见,请采用这个常见的(C)示例:
printf("stuff"); // << retval ignored