簡體   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