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

Objective-C 協議(Protocol)核心語法與實戰應用

     編輯:關於C語言

協議基本概念

Objective-C 協議類似 Java 介面,但無父類別、無法定義實例變數。它宣告一組方法供其他類別實作,適用於:

  • 需由不同類別實作的通用方法。
  • 宣告未知類別的介面。
  • 兩個類別之間的通訊契約。

協議特徵

  • 可被任意類別採納。
  • 本身非類別,僅定義介面規範。
  • 分類亦可採納協議(較少見)。

關鍵字:@required 與 @optional

  • @required:預設值,方法必須實作。
  • @optional:方法可選擇性實作。

範例:協議宣告與採納

// OneProtocol.h
#import <Foundation/Foundation.h>

@protocol OneProtocol <NSObject>
@optional
- (void)optionalMethod1;
- (void)optionalMethod2;

@required
- (void)requiredMethod1;
@end

// Test.h
#import "OneProtocol.h"

@interface Test : NSObject <OneProtocol>
@end

實作協議方法

// Test.m
#import "Test.h"

@implementation Test
- (void)optionalMethod1 { NSLog(@"可選方法1"); }
- (void)optionalMethod2 { NSLog(@"可選方法2"); }
- (void)requiredMethod1 { NSLog(@"必須實作方法"); }
@end

主程式呼叫

Test *test = [[Test alloc] init];
[test optionalMethod1];
[test optionalMethod2];
[test requiredMethod1];
[test autorelease];

執行結果截圖

善用 @optional 可減少強制實作負擔,配合 respondsToSelector: 執行前檢查,提升彈性。

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