- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
许多 UIKit
类可以被子类化,但文档要求某些方法,如果被覆盖,必须确保仍然调用 super
。例如:
-[UIViewController viewWillAppear:]
-[UITableViewCell didTransitionToState:]
<every method UIPercentDrivenInteractiveTransition declares>
为什么 Apple 选择不附加 NS_REQUIRES_SUPER
这些方法的声明,因为它们确实“需要 super ”?我的第一个想法是与早期版本的 clang 向后兼容,但在阅读以下 clang 文档摘录后,我认为即使这也不是问题:
Note that on both OS X and iOS that the Foundation framework provides a convenience macro
NS_REQUIRES_SUPER
that provides syntactic sugar for this attribute:
- (void)foo NS_REQUIRES_SUPER;
This macro is conditionally defined depending on the compiler's support for this attribute. If the compiler does not support the attribute the macro expands to nothing.
最佳答案
因为它是一个相对较新的注解,人们还没有完成将它应用到(巨大的)api 的工作。
关于ios - 为什么 UIKit 方法不使用 NS_REQUIRES_SUPER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25729785/
许多 UIKit 类可以被子类化,但文档要求某些方法,如果被覆盖,必须确保仍然调用 super。例如: -[UIViewController viewWillAppear:] -[UITableVie
我是一名优秀的程序员,十分优秀!