委託是用於在實體之間發送消息的一對一關係方法。 如果您想收到來自不同班級的相同消息,可以使用NSNotification
這是一對多關係。
看那NSNotificationCenter
類,特別是postNotification
方法(用於發送消息)和addObserver
方法(當接收到的通知中使用)
編輯: 這裏的進行委派的示例代碼。
讓我們以您的遊戲級別爲例。您有一個LevelManager
類和FirstLevel
類。如果你想在LevelManager
被通知當FirstLevel
結束,你必須在你的FirstLevel某處聲明的協議在你的FirstLevel
類
// FirstLevel.h
@protocol SomeProtocol <NSObject>
-(void)levelDidEnd;
@end
@interface FirstLevel : NSObject
@property (nonatomic, weak) id<SomeProtocol> delegate;
@end
然後。男,打電話的時候的水平結束了您的協議方法
// FirstLevel.m
- (void)playGame {
if ([player isDead]) {
[delegate levelDidEnd];
}
}
下一步是實現你的協議,您LevelManager:
// LevelManager.h
@interface LevelManager : NSObject <SomeProtocol>
@property (strong, nonatomic) FirstLevel *firstLevel;
@end
,然後設置你的firstLevel.delegate
和實現協議方法
// LevelManager.h
- (void)viewDidLoad {
firstLevel.delegate = self;
}
- (void) didLevelEnd {
// do actions here like showing the menu
}
通過消息我的意思是方法,而不是通知。或者我不明白你的答案? –
也許我是那個在這裏不明白的人。你是否要求一個代表團的例子代碼? – Yaman