このデリゲート委任は、コントローラAにはなく、コントローラBで動作
@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両方で(あります):
私は1つのコントローラでコールを受信できますが、他のコントローラではコールを受信できません(コードはコピーキャット)、これは私を夢中にさせている!
これがシングルトンの場合、前にデリゲートセットをオーバーライドしています。 –
あなたの*他の*コントローラではどういう意味ですか?あなたがシングルトンを呼んでいるように見えます。 – Perception
シングルトンは問題ではない、私は魅力のように動作する代理人と別の共有オブジェクトを持っています。 – Enlil