Я создал простой пример использования делегата. Проблема в том, что при запуске приложения вызывается класс MyClass и отправляется делегат. Но я не могу получить его в ViewController. Ниже мой код я хотел бы знать, что я сделал неправильно, и если я понимаю делегатов ошибочно.Класс NSObject Делегаты не вызываются
Извинения за мою грамматическую ошибку. Спасибо за помощь заранее
MyClass.h
@protocol MyClassDelegate <NSObject>
@required
- (void) myClassDelegateMethod;
@end
@interface MyClass : NSObject
{
id<MyClassDelegate> delegate_;
}
@property(nonatomic, strong) id<MyClassDelegate> delegate_;
MyClass.m
@synthesize delegate_;
- (id)init
{
if (self = [ super init ])
{
[ self myMethodDoStuff ];
}
return self;
}
- (void) myMethodDoStuff
{
[ self.delegate_ myClassDelegateMethod ];
}
ViewController.h
#import "MyClass.h"
@interface ViewController : UIViewController<MyClassDelegate>
ViewController.m
-(void) viewDidLoad
{
[ super viewDidLoad ];
MyClass* class = [ MyClass new ];
[ class setDelegate_:self ];
[ self.view addSubView:class ];
}
Метод myClassDelegateMethod в viewController.m не вызывается.
-(void)myClassDelegateMethod
{
NSLog(@"Delegates");
}
Hey его работы в настоящее время. Спасибо за описание. – Jaff
Также возможно, если я создаю MyClass для одного класса? Будут ли делегаты работать, и правильно ли использовать их в этом случае? – Jaff
Да, одноэлементный класс почти одинаковый с обычным классом. – anhtu