亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

`[super viewDidLoad]`約定

`[super viewDidLoad]`約定

瀟瀟雨雨 2019-10-18 11:14:49
我看到在實現之前和實現之后都調用了[super viewDidLoad]的一些示例代碼。我知道您不必總是叫super(在其他許多討論中都可以看到)。當您調用它時,是在編碼之前還是之后?這可能會產生影響,具體取決于super的實現方式。盡管您不必知道super的實現即可編寫您的實現。當然,這適用于所有UIViewControllers委托方法(willAppear,didAppear等)。有什么想法嗎?
查看完整描述

2 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

我的經驗法則是:如果您要進行與初始化相關的操作,請始終先調用超類的方法(如果要完全調用它)。這使超類有機會進行以后在方法中可能要依賴的任何設置。如果您要進行與破壞相關的操作,請最后調用超類的方法。這樣可以確保在整個方法執行過程中都可以依賴對象的狀態。最后,根據具體情況處理其他情況。例如,如果要處理事件,則可能要先處理該事件,并且僅在您選擇不處理該事件或以某種方式對其進行了更改并希望將其傳遞給事件時才調用超類的方法。鏈。


查看完整回答
反對 回復 2019-10-18
?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

假設您有2個班級,一個父母和一個孩子。子級從父級繼承。他們有一個叫做greet的方法,該方法返回一個字符串。


父方法如下所示:


碼:


-(NSString *)greet {

 return @"Hello";

}

我們希望孩子向父母學習。因此,我們用super表示問候,媽媽會打招呼,但也有一些自己的補充。


代碼://從父類繼承


-(NSString *)greet {

NSString *parentGreeting = [super greet];

return [parentGreeting stringByAppendingString:@", Mommy"]

}

因此,現在父母打招呼“你好”,孩子打招呼“媽媽你好”。稍后,如果我們更改父母的問候,只返回“嗨”,那么這兩個課程都會受到影響,您將獲得“嗨”和“嗨,媽媽”。


super用于調用超類定義的方法。它用于訪問已被子類覆蓋的方法,以便該類可以將其自己的代碼包裝在其父類實現的方法周圍。如果您要進行任何繼承都非常方便。


查看完整回答
反對 回復 2019-10-18
  • 2 回答
  • 0 關注
  • 630 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號