如何知道哪個初始化程序是任何類的指定初始化程序? 我猜測這是一個需要最多參數的人,但可能有時候這是不正確的。如何知道哪個初始化程序是指定的初始化程序?
回答
omz的答案可以更加明確地說明:框架類的文檔將指定哪個是指定的初始化程序。有必要知道指定的初始化程序是爲了編寫適當行爲的子類。子類的D.I.必須打電話給超級的D.I.以確保它被正確初始化。
然而,你對最多參數的猜測是有根據的。蘋果實際上表示它是經常是 D.I.在幾個地方。
一類的初始化,它利用初始化參數的全套通常是指定的初始化。
某些子類提供了提供缺省值到需要的初始化參數完全互補的初始化便利初始化。這個初始化器通常是指定的初始化器,它是一個類的最重要的初始化器。
謝謝。一如既往,答案在文檔中! – lampShade 2011-05-27 02:16:24
@lampShade::)一如既往。除Cocoa之外的其他框架_應該指定指定的初始化器,如果它們打算用戶子類。如果他們沒有這樣指定,那麼得到一個新的框架!樂意效勞! – 2011-05-27 02:30:49
如果不查看源代碼(不可能用於系統框架)或文檔(可能是超類),您無法真正瞭解這一點。
嘿,你寫了新聞架!我喜歡那個應用程序。我每天早上都會閱讀我的Feed。不錯的工作! – lampShade 2011-05-27 01:11:04
從BigNerdRanch iOS的編程書籍:
*指定初始化要求在做任何事情之前超類的指定初始化(直接或間接)。
* 任何其他初始化程序調用該類的指定初始值設定項(直接或間接)。
*如果一個類聲明瞭一個與它的父類不同的指定初始化方法,則必須重寫超類的指定初始化方法來直接或間接地調用新的指定初始化方法。
Conway,Joe; Hillegass,亞倫; Keur,Christian(2014-02-14)。 iOS編程:大書呆子牧場指南(第4版)(大書呆子牧場指南)(Kindle Locations 1906-1910)。皮爾遜教育。 Kindle版。
- 1. Swift 2中的指定初始化程序和便捷初始化程序
- 2. C++ 0x指定的初始化程序
- 3. Python程序的初始化
- 4. 指定初始化程序缺少超級調用超級類的指定初始化程序
- 5. 使用超類初始化程序初始化一個類
- 6. 在指定的初始化程序中初始化實例對象?
- 7. ::初始化程序(NameError)
- 8. C#初始化程序空指針
- 9. 定製按鈕的初始化程序
- 10. Ctor初始化程序:自初始化會導致崩潰?
- 11. 通過初始化程序列表初始化QList
- 12. 在初始化程序列表中初始化unordered_map
- 13. 錯誤信息:未初始化::初始化程序:: MEMCACHE
- 14. 從初始化程序列表初始化,但沒有{{{{{{{{...}}}}}}}}?
- 15. MacRuby自定義初始化程序
- 16. 自定義對象初始化程序
- 17. 是否有ML型初始化程序?
- 18. - (id)init是否使用指定的初始化程序?
- 19. Rails:每個環境初始化程序?
- 20. 如何在C++類的初始化程序列表中初始化member-struct?
- 21. Django應用程序初始化過程
- 22. 如何static_assert初始化程序列表是一定的大小
- 23. 如何用顯式元素初始化程序初始化矢量?
- 24. 編程初始化
- 25. 默認初始化整數成員是否爲空初始化程序?
- 26. 如何知道哪個文件正在初始化對象?
- 27. shell腳本中的初始化程序
- 28. Obj-C:初始化程序中的NSError
- 29. 調試初始化程序的問題?
- 30. Kotlin的靜態初始化程序塊
「指定初始化程序」是什麼意思? init是標準。 – shawnwall 2011-05-27 01:03:02
@shawnwall:指定的初始化程序是所有其他init ...方法調用的init ...方法。例如。對於'UIView'和'NSView',這是'initWithFrame:'(它在文檔中提到過)。請參閱[這裏](http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocAllocInit.html#//apple_ref/doc/uid/TP30001163-CH22-106376)瞭解更多詳情 – omz 2011-05-27 01:06:19