編寫高質量OC程式碼52建議總結:16.提供“全能初始化方法”
如果建立類例項的方式不止一種,會有多種初始化方法,仍要選擇其中一個作為“全能初始化”方法,令其他初始化方法都來呼叫它。
- (instancetype)init NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithTimeIntervalSinceReferenceDate:(NSTimeInterval)ti NS_DESIGNATED_INITIALIZER;
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithTimeIntervalSinceNow:(NSTimeInterval)secs;
- (instancetype)initWithTimeIntervalSince1970:(NSTimeInterval)secs;
- (instancetype)initWithTimeInterval:(NSTimeInterval)secsToBeAdded sinceDate:(NSDate *)date;
- (instancetype)initWithTimeIntervalSinceReferenceDate:(NSTimeInterval)ti NS_DESIGNATED_INITIALIZER;是“全能初始化方法”,其他初始化方法都會呼叫它。只有在全能初始化方法中,才會儲存內部資料。當底層資料儲存機制改變時,只需修改此方法的程式碼就可以。
在類中提供一個全能初始化方法,並於文件中指明。其他初始化方法均應呼叫此方法。
若全能初始化方法與超類不同,則需覆寫超類中的對應方法。
如果超類的初始化方法不適用於子類,應該覆寫這個超類的方法,並在其中丟擲異常。
相關文章
- 編寫高質量OC程式碼52建議總結:17.實現describtion方法C程式
- 編寫高質量OC程式碼52建議總結:13.用“方法調配技術”除錯“黑盒方法”C程式除錯
- 編寫高質量OC程式碼52建議總結:12.理解訊息轉發機制C程式
- 編寫高質量OC程式碼52建議總結:11.理解objc_msgSend的作用(訊息機制)C程式OBJGse
- [編寫高質量iOS程式碼的52個有效方法](九)塊(block)iOSBloC
- 編寫高質量iOS有效方法總結(一)iOS
- 編寫高質量iOS與OS X程式碼的52個有效方法(一)iOS
- 編寫高質量iOS與OS X程式碼的52個有效方法(五)iOS
- 編寫高質量iOS與OS X程式碼的52個有效方法(二)iOS
- 編寫高質量程式碼:改善Java程式的151個建議(第4章:字串___建議52~55)Java字串
- [編寫高質量iOS程式碼的52個有效方法](七)記憶體管理(上)iOS記憶體
- [編寫高質量iOS程式碼的52個有效方法](八)記憶體管理(下)iOS記憶體
- [編寫高質量iOS程式碼的52個有效方法](十)Grand Central Dispatch(GCD)iOSGC
- 我總結了寫出高質量程式碼的12條建議
- 編寫高質量程式碼 改善Python程式的91個建議Python
- iOS 編寫高質量Objective-C程式碼iOSObjectC程式
- [轉]高質量JAVA程式碼編寫規範Java
- 怎樣編寫高質量的java程式碼Java
- 編寫高質量的程式碼,從命名入手
- 《Effective JavaScript 編寫高質量JavaScript程式碼的68個有效方法》JavaScript
- 編寫高質量程式碼:改善Java程式的151個建議(第3章:類、物件及方法___建議41~46)Java物件
- 編寫高質量程式碼:改善Java程式的151個建議(第3章:類、物件及方法___建議47~51)Java物件
- 編寫高質量程式碼:改善Java程式的151個建議(第3章:類、物件及方法___建議31~35)Java物件
- 編寫高質量程式碼:改善Java程式的151個建議(第3章:類、物件及方法___建議36~40)Java物件
- 寫出高質量程式碼的10個建議
- 《編寫高質量程式碼:改善Java程式的151個建議》筆記Java筆記
- 編寫高質量程式碼
- iOS 編寫高質量Objective-C程式碼(四)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(一)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(三)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(二)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(八)iOSObjectC程式
- iOS編寫高質量Objective-C程式碼(四)iOSObjectC程式
- iOS編寫高質量Objective-C程式碼(二)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(五)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(六)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(七)iOSObjectC程式
- iOS編寫高質量Objective-C程式碼(六)iOSObjectC程式