iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 8
0
自我挑戰組

iOS 筆記系列 第 8

super 系列 part3

在查 super相關資料時,發現大概有三個問題要解答:

  1. 要不要寫 [super method-name]?
  2. viewDidLoad 那些系統內建的方法到底要不要寫
  3. 放在最前面、最後面還是都可以?

第一點

這在上一篇 part2 已經說明了,需不需要就看你需要囉!

第二點

要回答這個問題就要先知道到底系統預設的方法裡面有沒有寫什麼,知道在做什麼後我們才可以決定要不要寫,但問題是蘋果並沒有公開,這個問題上網查了一下大家也是意見分歧,大概有兩種想法:

  1. 要加,雖然現階段裡面沒有寫什麼東西(因為現在有寫沒有都沒有影響,所以可以這樣推論),但萬一以後蘋果在裡面有寫東西,你就可以自動使用了。
  2. 不要,因為你不知道裡面做了什麼,既然你要覆寫,那就直接覆蓋掉吧。

第三點

下面我查到的這個回答是建立在我們要使用 super 的基礎上。
當你要複寫像 init、viewWillAppear、viewDidLoad 這類初始化(initialization)的方法時寫在前面。

- (void)setupSomething {
    [super setupSomething];
    …
}

當你要覆寫結束(teardown)類型的方法,最後才寫 super。

- (void)tearDownSomething {
    …
    [super tearDownSomething];
}

來源:http://stackoverflow.com/a/3906741


上一篇
super 系列 part 2:什麼時候使用?
下一篇
super 系列 part 4:系統內建方法要不要寫?
系列文
iOS 筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言