objective-c - 在Objective C中子类化时需要实现的方法

标签 objective-c ios methods subclassing

我一般是编程新手(尽管我在很多年前上过 C 课)并且正在学习 Objective-C 以在 iPhone 上进行编程。我有一个我认为是一个简单的问题,但是在寻找了一段时间(几天,断断续续)之后,我找不到我正在寻找的答案。

我知道当子类化一个Objective-C类时,我应该实现initialize方法和deallocate方法(除非后者使用ARC,如果我是正确的?)。问题是:

  • 是否只有这两个需要担心,或者其他类是否可能具有需要实现的其他方法?
  • 如果其他类在子类化时可能具有我需要实现的方法,那么通常在哪里可以找到该文档? (我似乎没有在 Apple 框架文档中看到这一点,尽管它出现的协议(protocol)中有这种信息)

  • 谢谢你的帮助!

    最佳答案

  • 从技术上讲,您甚至不需要实现 initdealloc如果继承的版本足够。此外,ARC 并没有让您免于编写 dealloc在所有情况下(但它肯定涵盖了绝大多数)。例如,如果您使用 malloc 为对象分配内存。 ,您需要在 dealloc 中释放它.
  • 当您将实例变量添加到您的类时,您需要初始化它们。通常,您在指定的初始化程序中执行此操作。同样,如果您不初始化任何内容,则不必编写自己的初始化程序;反初始化器也是如此。
  • 唯一需要实现方法的情况是采用带有一个或多个方法标记为 @requried 的协议(protocol)时。 .这些方法在协议(protocol)引用中都有标记。例如,tableView:cellForRowAtIndexPath:tableView:numberOfRowsInSection:Apple's documentation 中标有“必需方法”标签.
  • 关于objective-c - 在Objective C中子类化时需要实现的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11620646/

    相关文章:

    ios - iOS 中的图像拉伸(stretch)不正确

    iphone - UIScrollView subview 内容大小问题

    iOS7 QLPreviewController 更改导航栏颜色?

    cocoa-touch - 这是操作队列完成 block 的正确用法吗?

    Java 类方法、方法 invoke() 和原始类型

    java - 从 main 之外的方法访问类对象

    java - 如何在wifi打开时启动计时器?

    iOS - 锁定屏幕时多次调用 UI KeyboardWillShowNotification

    ios - ios 中 cornerradius 中的段控制问题

    iOS 6 旋转 : Pushing a View Controller