我在一类中有一个协议:
@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];
没啥事儿。我不明白实现有什么问题 - 这是一个简单的适配器模式实现。所以我需要使用从第三类调用方法的委托。有什么帮助吗?