在iPhone的開發框架中,回調函數通過所謂的代理(Delegation)來實現,舉例說明:每個UITextView對象都有一個delegate屬性,該屬性指向一個特定的對象,所謂特定指的是該對象遵從特定的協議(Protocol),這個與Java中的Interface應該是同一概念,指的是預定義方法的集合,如:
@protocol UITextViewDelegate
@optional
-(BOOL) textViewShouldBeginEditing: (UITextView *)text View;
-(BOOL) textView:(UITextView *)text View
shouldChangeTextInRange:(NSRange) range
raplacementText:(NSString *)text;
-(void) textViewDidChange:(UITextView *)textView;
@end
單對象的特定事件觸發的時候,對象就會調用delegate指向對象對應的協議方法。在蘋果的開發文檔中,每個協議都有單獨的頁面列出所有的方法和參數。