0

我发现了通常委托模式的一个微小变体:

我的协议是在一些 Protocol.h 中定义的,即

@protocol ProtocolDelegate <NSObject>
//…
@end

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

接下来,在我的 ViewController.h

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

然后,在我的 ViewController.m

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

最后,在我的 AppDelegate.m

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

一切都很顺利。真的等同于通常的方式“id delegate”,还是你认为应该避免这样的typedef?

谢谢!

杰加普

4

1 回答 1

0

唯一的区别应该是您是否使用指针符号。我不相信有任何区别,但是当 Objective-C 给你 id 时为什么要创建 typedef 呢?

于 2013-05-29T03:34:29.637 回答