繁体   English   中英

在Objective C中进行子类化时需要实现的方法

[英]Methods required to be implemented when subclassing in Objective C

我是编程方面的新手(尽管很多年前我已经有过很多C课程),而且我正在学习Objective-C在iPhone上进行编程。 我认为这是一个简单的问题,但在寻找一段时间(几天,一天又一天)后,我无法找到我正在寻找的答案。

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

  1. 这些是唯一需要担心的两个,还是其他类可能需要实施其他方法?
  2. 如果其他类可能具有我在子类化时需要实现的方法,那么通常会找到文档在哪里? (我似乎没有在Apple框架文档中看到它,尽管它出现的协议有那种信息)

谢谢你的帮助!

  • 从技术上讲,如果继承的版本足够,则不需要实现initdealloc 此外,ARC并没有让你免于在所有情况下编写dealloc (但它绝对覆盖了绝大多数)。 例如,如果使用malloc为对象分配内存,则需要在dealloc释放它。
  • 将实例变量添加到类时,需要初始化它们。 通常,您在指定的初始化程序中执行此操作 同样,如果你不初始化任何东西,你不必编写自己的初始化程序; 取消初始化也是如此。
  • 当您需要实现方法时,唯一的情况是当您采用带有一个或多个标记为@requried方法的协议时。 这些方法在协议参考中标记。 例如, tableView:cellForRowAtIndexPath:tableView:numberOfRowsInSection:Apple的文档中标有“required method”标记。

子类化NSObject(或其任何子类,如UIViewController,UIView等)时,不需要任何方法。

如果您创建一个新的,比如说UIViewController,通常最好将您在新创建的文件中找到的方法作为指南/模板,但实际上并不需要保留任何方法。 超类总是会调用方法本身。

但请注意,您必须调用一些超级方法,例如viewWillAppear等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM