У меня есть протокол в одном классе:Брус вызов метода делегата из моего класса протокола
@protocol DataStorageManager
- (void) saveFile;
@end
@interface DataManager : NSObject
{
id <DataStorageManager> delegate;
}
@property (nonatomic, assign) id<DataStorageManager> delegate;
//methods
@end
и его реализация:
@implementation DataManager
@synthesize delegate;
@end
и у меня есть еще один класс, который является адаптером между первым и третий:
#import "DataManager.h"
#import "DataPlistManager.h"
@interface DataAdapter : NSObject <DataStorageManager>
@property (nonatomic,strong) DataPlistManager *plistManager;
- (void) saveFile;
@end
и его реализация
#import "DataAdapter.h"
@implementation DataAdapter
-(id) initWithDataPlistManager:(DataPlistManager *) manager
{
self = [super init];
self.plistManager = manager;
return self;
}
- (void) saveFile
{
[self.plistManager savePlist];
}
@end
Так что, когда я в первый метод попытаться вызвать мой метод делегата, как это
[delegate saveFile];
Ничего не произошло. Я не понимаю, что случилось с реализацией - это простая реализация шаблона адаптера. Поэтому мне нужно использовать делегат, который вызовет методы из третьего класса. Любая помощь?
сейчас есть ошибка _Property 'delegate' не найден на объекте типа 'DataPlistManager *' _ Что случилось сейчас? – ShurupuS
@ShurupuS Вы действительно хотите передать экземпляр 'DataPlistManager' в' initWithDataPlistManager: 'или должен ли он вместо экземпляра DataManager? – Amar
Что такое класс DataPlistManager? Должен ли он быть подклассом класса DataManager? – Amar