【发布时间】:2011-08-24 13:11:12
【问题描述】:
这是代表
@protocol DropControllerDelegate;
@interface DropController : NSObject
id<DropControllerDelegate> delegate;
}
@property (nonatomic, assign) id<DropControllerDelegate> delegate;
+ (DropController*) sharedController;
@protocol DropControllerDelegate <NSObject>
- (void)openUserButtons;
- (void)startUpload;
- (void)uploadDone;
- (void)uploadFailed;
- (void)startDownload;
- (void)downloadDone;
- (void)subFolderLoaded;
@end
这是单例代码:
static DropController *sharedCont = nil;
#pragma mark Singleton stuff
+ (DropController *) sharedController {
@synchronized(self) {
if (!sharedCont)
sharedCont = [[DropController alloc] init];
return sharedCont;
}
return sharedCont;
}
设置委托的代码是(在 myControllerA 和 myControllerB 中):
DropController* dropHelper = [DropController sharedController];
dropHelper.delegate = self;
我能够在一个控制器中接收调用,但在另一个控制器中不能接收(代码是模仿者),这让我发疯!
【问题讨论】:
-
如果那是一个单例,那么您将覆盖之前设置的委托。
-
你的 other 控制器是什么意思?看起来你正在调用一个单例。
-
单身不是问题,我有另一个与委托共享对象,就像一个魅力。
-
我有 2 个控制器需要接收来自 DropControllerDalegate 的调用,第一个按预期工作,第二个没有,我不知道为什么,因为代码相同
标签: iphone objective-c ios delegates