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 № 1La 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?