首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Objective-C 分類(Category)擴充類別功能完全指南

     編輯:關於C語言

分類核心觀念

分類允許在不修改原始類別、不建立子類別的情況下,為現有類別新增方法。其特性:

  • 分類中定義的方法會成為原類別一部分,呼叫方式無差異。
  • 對父類別定義分類,子類別亦會繼承新增方法;反之則否。

主要應用場景

  • 擴充現有類別:如擴充 Cocoa Touch 框架類別(NSString、NSArray 等)。
  • 替代子類別:無需建立子類別即可增加功能。
  • 程式碼組織:將龐大類別拆分為多個分類檔案,利於團隊協作與維護。

限制事項

  • 無法新增實例變數:分類無儲存空間,需透過子類別或關聯物件實現。
  • 避免覆寫既有方法:分類方法優先級較高,可能導致 super 呼叫鏈中斷。

命名規範與宣告語法

檔案命名:類別名+功能描述,例如 NSString+Reverse.h/m。

// 介面宣告
#import <Foundation/Foundation.h>

@interface NSArray (Convert)
+ (NSMutableArray *)arrayFromNumber:(int)number;
@end

實作範例:將整數拆解為數字陣列

// 實作檔
#import "NSArray+Convert.h"

@implementation NSArray (Convert)
+ (NSMutableArray *)arrayFromNumber:(int)number {
    NSMutableArray *numberArray = [[NSMutableArray alloc] init];
    while (number) {
        int last = number % 10;
        number /= 10;
        [numberArray addObject:[NSNumber numberWithInt:last]];
    }
    return [numberArray autorelease];
}
@end

分類結構示意圖

分類是 Objective-C 極具彈性的擴充機制,善用可大幅提升程式碼模組化程度。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved