objective-c - 在 iOS 和 Cocoa Touch 上,我们是否应该假设我们应该始终发送 "super"相同的消息?

标签 objective-c ios cocoa-touch

在 iOS 和 Cocoa Touch 中,有时我们似乎可以不调用 super,例如:

-(void) viewDidAppear:(BOOL)animated {
    // nothing weird if the following is not called:  
    //     [super viewDidAppear: animated]
    // but the docs says we should call it
}

而且我认为对于 drawRect,我们通常不会向 super 发送相同的消息,除非 super 正在绘制它的一些内容自己的。我们是否应该始终发送 super 相同的消息只是为了在 Cocoa Touch 和 iOS 中是安全的,并且在某些情况下,不是不发送 super 相同的消息?

最佳答案

没有通用规则,它始终取决于您继承的类和您覆盖的方法。 NSObject 是(现代)Objective-C 中类层次结构的根,显然它没有实现您看到和使用的大多数方法,因此作为一般规则,总是调用 super 是没有意义的。

您只需分别查看每种方法的文档。

关于objective-c - 在 iOS 和 Cocoa Touch 上,我们是否应该假设我们应该始终发送 "super"相同的消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10846069/

相关文章:

javascript - 将 javascript 函数转换为 Obj-C 函数

android - 记录iOS/Android应用程序用户测试

cocoa-touch - "refresh"设备旋转 View

iphone - 使用 SDURLCache(NSURLCache 的子类)时的内存泄漏

objective-c - 启用页面和设备旋转/方向更改的 UIScrollView (MADNESS)

objective-c - ARC 子类上的 super dealloc

iPhone - 使用 Sharekit 将图像发送到 Facebook

objective-c - 具有两个或多个操作的 NSButton

ios - 在 iOS 中 - 如何在不改变其位置的情况下使 UILabel 适合其文本?

iphone - MFMailComposer - 在邮件正文中嵌入可点击的链接?