一起Talk IOS吧(第十四回 類中方法的定義和使用)

talk_8發表於2020-11-22

看官們,我們在上一章回中介紹類中封裝相關的內容,封裝的內容中包含方法,我們當時只做了簡單的說明,本章回我們全面介紹方法的定義與使用。

我們先給一個定義方法的模板:

-(type1) funcName:(type2)param1 and:(type3) param2;

接下來我們對該模板進行解釋。

  1. 模板中的減號表示該方法為類的物件擁有,也可以換成加號,它們的區別我們在上一章回中介紹過;
  2. type1表示方法的返回型別,型別可以是基本型別或者複合型別,如果沒有返回值,那麼就寫void;
  3. type2和type3都方法引數的型別,和tyep1一樣,它們可以是基本型別或者複合型別;
  4. param1和param2是引數的名字;
  5. 方法的名字是funcName:and:,這裡的and可以省略,但是冒號不能省略,不過在實際中我們建議保留and,因為通過它可以直觀地明白引數的含義。就像我們在上一章回中的示例程式碼:connect:and:方法。一看就知道是把兩個值連線到了一起。

關於方法的引數可以依據需要來確定,可以是一個,多個或者沒有引數,如果沒有引數就不需要冒號以及後面的內容了。特別地強調一下,OC的方法定義語法比較特殊,剛開始接觸
時會有點不習慣,不過用多以後就習慣了。

看官們,如果明白方法的定義後,理解方法的實現就容易,只需要在方法定義後面加上一個大括號,然後把實現方法的內容放到大括號中就可以。是不是很容易。不過看官們不要高興的太早,雖然我們現在已經知道了如果去定義和實現方法,但是如何使用方法仍然是一個不小的挑戰。接下來我們一起完成這個挑戰。

首先列出使用方法的模板:

[responser funcName]

  1. 在模板中我們藉助中括號來使用方法;
  2. responser可以是類的物件或者類本身;
  3. funcName是方法的名稱;

使用類或者類的物件呼叫方法。另外在有些地方會把呼叫方法的這種機制叫作訊息傳遞或者訊息響應。總之,不管它叫什麼,本質上都是使用方法。

最後我們對本章回的內容做一下總結:

  • 1.定義方法的標準模板:-(type1) funcName:(type2)param1 and:(type3) param2;
  • 2.使用方法的模板:[responser funcName]
  • 3.在OC中定義和使用方法的語法都比較特殊,希望大家在參考上一章回程式碼的同時,多加練習;

看官們,欲知後事如何且聽下回分解!

相關文章