Protocols

  • En kontrakt for klasser, som spesifiserer hvilke metodene som må implementeres. Protokollen kan også definere metoder som kan være valgfrie å implementere for klassen.
  • Protokoller kan sammenlignes med interfaces i Java, men har i tillegg muligheten til å ha valgfrie metoder
  • Protokoller brukes f.eks. for å implementere delegate patternet. Et konkret eksempel finner du i table view controllers

Eksempel på definisjon av protokoller

@protocol KUrlConnectionDelegate

	@required
	- (void)didFinishWithData:(NSData *)data;

	@optional
	- (void)didFinishWithError:(NSError *)error;

@end

/* KURLConnection må implementere didFinishWithData: og kan implementere didFinishWithError: */
@interface KURLConnection : NSObject <KUrlConnectionDelegate> {}
//..
@end