这似乎是一个简单的问题,但我不确定
之间有什么区别- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
和
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:YES];
}
有人可以解释一下吗?感谢。
答案 0 :(得分:1)
在前者中,您让调用者决定视图是否会显示动画,后者则强制超类显示动画。
从广义上讲,后者不是很好的编程习惯,因为调用者不能依赖他们的意图(特别是动画不是想要的情况)被尊重。
值得注意的是,如果您的子类是UIViewController
的直接子类,则调用实际上是相同的,因为UIViewController
的{{1}}方法不执行任何操作。
编辑:
我几乎不想添加这个,因为我说这是一个糟糕的编程习惯,但我已经看到了在开发人员的意图所说的一些情况下将viewWillAppear:
传递给超类的语法,< em>“这个视图控制器应该只显示动画。”
但是,正如我所说,这是一个不好的做法,因为它打破了子类化。
如果您按照这些思路思考,我认为更好的做法是使用断言或至少一条日志消息,例如:
YES
然后你会发现测试中的错误用法(你会立刻发现你做有一个非动画的用例)。