0
请参考下面的代码:使用错误协议
//
// CacheObjectManagerImpl.h
#import <Foundation/Foundation.h>
//#import "CacheObject.h"
@class CacheObject;
@protocol ICacheObjectManager <NSObject>
typedef enum {
kSTRING,
kBYTEARRAY,
kCACHABLE,
kSTRINGVALUE
} CacheObjType;
CacheObjType *CacheObjectType;
@required
//- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
- (CacheObject *) createCacheObject:(NSString *)data url:(BOOL*)isURL savefile:(BOOL*)saveToFile downloadmgr:(ICacheObjDownloadMgr*) downloadMgr;
//-(CacheObject*) createCacheObject: (Cachable*) dataObject;
@end
@interface CacheObjectManagerImpl : NSObject {
}
@property(nonatomic,assign) id <ICacheObjectManager> delegate;
@end
它使用上面的类CacheObject下一个文件:
//
// CacheManagerImpl.h
#import <Foundation/Foundation.h>
//#import "CacheObject.h"
//#import "CacheObjectManagerImpl.h"
@class CacheObject;
@class CacheObjectManagerImpl;
@protocol ICachePurgeLogic <NSObject>
@required
- (void)runPurge: (NSDictionary*)cacheMap;
@end
@protocol ICacheManager <NSObject>
@required
- (void) put:(NSString*)key cacheobj:(CacheObject*)cacheObj;
- (CacheObject*)get: (NSString*)key;
- (void) clearEntireCache;
- (void) remove: (NSString*)key;
- (void) purge;
- (void) setCachePurgeCustomMgr: (ICachePurgeLogic*)cachePurgeLogic; **//ERROR: error: expected ')' before 'ICachePurgeLogic'**
@end
@interface CacheManagerImpl : NSObject {
NSNumber *timeToLive;
NSDictionary *cacheMap;
ICacheObjectManager *cacheObjMgr; **//ERROR: error: expected specifier-qualifier-list before 'ICacheObjectManager'**
ICachePurgeLogic *purgeManager; **//ERROR: error: expected specifier-qualifier-list before 'ICachePurgeLogic'**
}
@property(nonatomic,assign) id <ICacheManager> delegate;
- (void) getCacheManagerInstance: (NSNumber*) timeToLive;
- (ICacheObjectManager*) createCacheObjManager; **//ERROR: error: expected ')' before 'ICacheObjectManager'**
- (ICacheObjectManager*) getCacheObjManager; **//ERROR: error: expected ')' before 'ICacheObjectManager'**
@end
我无法理解为什么我收到上述错误。如果我包含头文件,由于包含循环头文件,我会得到更多的错误。这些编译器错误有什么可能的解决方法?或者我的代码在协议传递和返回的意义上是完全错误的。
感谢,
ICachePurgeLogic和ICacheObjectManager声明在哪里? – MCannon