Пожалуйста, используйте следующий код:
//
// 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
Я не могу понять, почему я получаю вышеуказанные ошибки. Если я включаю заголовочные файлы, я получаю больше ошибок из-за циклического заголовка. Каковы возможные способы обхода этих ошибок компилятора? Или мой код совершенно неверен в том смысле, что я передаю и возвращаю по протоколам.
Спасибо