iOS基礎知識:類目、延展,ios類目

來源:互聯網
上載者:User

iOS基礎知識:類目、延展,ios類目

一 、類目: 為已存在的類添加新的方法。但是不能添加執行個體變數。

        應用:1、對現有的類進行擴充,如:系統中的類,在類目中增加的方法會被子類繼承,而且在運行時跟其他的方法沒有區別。

                       2、作為子類的替代方式,不需要定義和使用一個子類,可以通過類目直接向已有的類裡增加方法。

                       3、對類中的方法進行歸類,利用catigory把一個龐大的類劃分為小塊來分別進行開發,從而更好地對類中的方法進行更新和維護。

                       4、和普通介面有所區別的是,在Category的實現檔案中的執行個體方法只要你不去調用它你可以不用實現所有聲明的所有方法。

         局限性: 1、無法向類目中添加新的執行個體變數。

                           2、類目中的方法具有更高的優先順序,若在類目中覆蓋原始類的方法(重載)。會引起super訊息的無效,因此,一般不要覆蓋現有類中的方法。

                                 如果確實要重載,那就通過繼承建立子類來實現。

         命名方式:類名+擴充方法,如“UIAlertView+AFNetworking”。類目的介面聲明與類的定義十分相似,但類目不繼承父類,只需要帶有一個括弧,表明該類目的主要用                                  途。

         在AFNetworking中有這樣一個類目、實現附帶alterview 的網路請求。 

         例:UIAlertView+AFNetworking.h檔案中

<span style="font-family:System;font-size:12px;">#import <Foundation/Foundation.h>@interface UIAlertView (AFNetworking)+ (void)showAlertViewForTaskWithErrorOnCompletion:(NSURLSessionTask *)task delegate:(id)delegate;</span>
          UIAlertView+AFNetworking.m檔案中

<span style="font-family:System;font-size:12px;">#import "UIAlertView+AFNetworking.h"@implementation UIAlertView (AFNetworking)+ (void)showAlertViewForTaskWithErrorOnCompletion:(NSURLSessionTask *)task delegate:(id)delegate{    [self showAlertViewForTaskWithErrorOnCompletion:task delegate:delegate cancelButtonTitle:NSLocalizedStringFromTable(@"Dismiss", @"AFNetworking", @"UIAlertView Cancel Button Title") otherButtonTitles:nil, nil];}</span><span style="font-size:12px;font-family: 宋體, 'Arial Narrow', arial, serif;"></span>

二、延展:延展的作用就是定義自己的私人方法。

              形式和類目相同,不用新建立檔案,延展中定義的方法在類本身的@implementation代碼地區中進行實現。

                     當在定義延展的時候不提供類目名時,延展中定義的方法既被視為“必須實現”的API在這種情況下,如果方法沒有實現代碼,那麼編譯器會警示告,這個時候方法的實現就一定要出現在類主體的@implementation代碼塊中了。

     

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.