我有两个协议 BaseDAO 和 ICategoryDAO。ICategoryDAO 采用 BaseDao。类 categoryDao 采用 ICategoryDao。
下面的代码是 serviceRepo 类(NSObject 的子类)的初始化方法。在这里我执行类型检查等。
- (id)init {
self = [super init];
if (self) {
self.dict = [NSMutableDictionary new];
[self.dict setValue:[CategoryDao description] forKey:[NSString stringWithFormat:@"%s",[@protocol(ICategoryDao) name]]];
}
return self;
}
问题是 Xcode 总是弹出错误Receiver type 'Protocol' 例如 message is a forward declaration in this call -> [@protocol(ICategoryDao) name]
。我正在使用ARC,它在非 ARC 项目上运行良好。我在互联网上找不到任何解决方案,所以最后我在这里。我该如何解决这个问题,我在这里做错了什么。
这是协议和类的结构;
基地道
#import <Foundation/Foundation.h>
@protocol BaseDao <NSObject>
I类别DAO
#import <Foundation/Foundation.h>
#import "BaseDao.h"
@protocol ICategoryDao <BaseDao>
类别DAO
#import <Foundation/Foundation.h>
#import "ICategoryDao.h"
@interface CategoryDao : NSObject <ICategoryDao>
服务回购
#import <Foundation/Foundation.h>
@interface ServiceRepository : NSObject
服务报告.m
#import "ServiceRepository.h"
#import "CategoryDao.h"
#import "BaseDao.h"
@implementation ServiceRepository