2010-08-11 2 views

Répondre

5

Protocoles en Obj-C ne semblent pas syntaxiquement comme, par exemple, « interfaces » en Java, où la syntaxe des pointeurs d'interface et Les pointeurs de sous-classe sont essentiellement les mêmes.

Le id<Runnable> est la façon idiomatiques que vous dites « un objet qui est conforme à Runnable. Un id est une référence à tout type d'objet, et la notation <> exprime une conformité explicite à un protocole donné aux fins la vérification de type.

Si vous dites Foo *, vous faites référence à un objet de chaque type Foo ou un de ses sous-classes.

cela se produit juste pour être la syntaxe Obj-C pour cela. Avec cette syntaxe , la la sémantique est similaire à ce que vous obtiendriez, par exemple Java.

+1

Il serait plus exact de dire que la syntaxe est différente. Ils fonctionnent à peu près de la même manière, c'est juste que Objective-C ne parle pas d'objets qui se conforment à un protocole en tant qu'instances de ce protocole. – Chuck

+0

+1 état précis –

+0

@Chuck. Bonne clarification. Réponse modifiée. –

Questions connexes