iT邦幫忙

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

iOS 筆記系列 第 13

Instance Method vs Class Method

  • 分享至 

  • xImage
  •  

定義

Class Method

  • Operate on Class variables
  • Do not require an object to be instantiated to be applied
  • Class Method can not access instance variables
YourClass *object = [[YourClass alloc] init];
[object instanceMethod];

Instance Method

  • Operate on instances variables
  • Must have an instanciated object to operate on
[YourClass classMethod];

來源:http://stackoverflow.com/a/1053610/3295047

什麼時候用哪個?

定義完後,另外一個問題是什麼時候要用哪個?

我查到這個解釋就瞬間懂了:

If we don't want to create the object of class then we use the class method if we want call the method through object of a class then we use the instance method.

來源:http://stackoverflow.com/a/4791045/3295047

兩者最大的差別是 Instance Method 需要初始化一個物件才可以使用,也只有 Instance Method 可以使用 instances variable。

當你想要的是產生一個物件然後再對它做些事的話,就用 Instance Method;如果沒有,你只是想要呼叫一個 function 的話,用 Class Method 就可以了。


上一篇
frame vs bounds 系列 part 3:bounds.origin 不是 (0,0) 的情況
下一篇
什麼是 First Responder ?
系列文
iOS 筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言