/ / id <ProtocolDelegate> entre parenthèses: pourquoi ne pas typedef? - protocoles, typedef, délégation

id <ProtocolDelegate> entre parenthèses: pourquoi ne pas typedef? - protocoles, typedef, délégation

J'ai trouvé une petite variante du schéma de délégation habituel:

Mon protocole est défini dans un certain Protocol.h, c'est-à-dire

@protocol ProtocolDelegate <NSObject>
//…
@end

//The variant, see below
typedef NSObject <ProtocolDelegate> Delegate;

Ensuite, dans mon ViewController.h

@interface: UIViewController
@property (nonatomic, strong)  Delegate*delegateOfviewController;
//…
@end

Ensuite, dans mon ViewController.m

@implementation ViewController
@synthesize delegateOfviewController;
//…
@end

Enfin, dans mon AppDelegate.m

//…
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//…
self.ViewController.delegateOfviewController = self;
//…
[self.window makeKeyAndVisible];
return YES;
}

Et tout se passe parfaitement bien. Est-ce vraiment équivalent à la manière habituelle "id delegate" ou pensez-vous qu'une telle typedef devrait être évitée?

Merci!

jgapc

Réponses:

0 pour la réponse № 1

La seule différence devrait être que vous utilisiez ou non un symbole de pointeur. Je ne crois pas qu'il y ait de différence, mais pourquoi faire un typedef quand Objective-C vous donne l'identifiant?