В чем разница между делегатом и уведомлением?
я понял как делегат и протокол,
@protocol classADelegate
-(void)DelegateMethod;
@end
classB <classADelegate>{
classA *ObjOfclassA=[[classA alloc]init];
ObjOfclassA.delegate=self;
//while push later, here we have taken the pointer of classB(self) to classA and stored in delegate variable of classA. so from classA we can call the function in classB
push:classA from here.
-(void)DelegateMethod{
nslog(@"i am rithik from India");
}
}
classA{
id <classADelegate> delegate;
-(void)viewdidload{
[self.delegate DelegateMethod];
}
}
Мое сомнение -
1, почему мы не используем в classA, как это
classA{
**classB** <classADelegate> delegate;
[self.delegate DelegateMethod];
}
в чем причина использования " id" и в чем их отличие?
2, мы вызываем метод функции classB DelegateMethod, который получен из определения протокола.
вместо этого мы можем прямо вызвать этот метод, указав этот метод экземпляра класса B., потому что у нас есть указатель на класс B в переменной класса.
вот так.
classB{
-(void)DelegateMethod;
}
а затем вызовите это в
classA{
classB delegate;
-(void)viewdidload{
[self.delegate DelegateMethod];
}
}
поэтому из вышеприведенного мы избежали протокола и переменной id.
но я знал, что многие из нас используют делегат и протокол. здесь я узнал о каких-либо преимуществах при использовании делегата и протокола
вот что такое использование протокола для метода функции DelegateMethod.
вместо исключения экземпляра.
что такое использование @protocol.
пожалуйста, один из нас направит меня в правильном направлении...
Я новичок в разработке iphone.
прямо сейчас я знал, как создать делегат. Но пока я пришел к изучению NSNotification
который также выполняет почти правильную работу, такую как делегат.
поэтому, когда я должен использовать delgate или NSnotification.
ThankU