在Objective-C的方法参数中使用枚举
我有一个头文件在Objective-C的方法参数中使用枚举,objective-c,xcode,enums,Objective C,Xcode,Enums,我有一个头文件apimager.h,其中定义了一个枚举: typedef enum ApiEndpoint { // some values } ApiEndpoint; 在该文件中,我有一个方法将以下值之一作为参数: - (NSString *) getPathForEndpoint: (ApiEndpoint) endpoint; 对于XCode来说,这似乎很好。但是,在另一个文件中,apimagerdelegate.h,我有以下定义: - (void) requestToEnd
apimager.h
,其中定义了一个枚举:
typedef enum ApiEndpoint {
// some values
} ApiEndpoint;
在该文件中,我有一个方法将以下值之一作为参数:
- (NSString *) getPathForEndpoint: (ApiEndpoint) endpoint;
对于XCode来说,这似乎很好。但是,在另一个文件中,apimagerdelegate.h
,我有以下定义:
- (void) requestToEndpoint: (ApiEndpoint) endpoint succeeded: (id) responseObject;
- (void) requestToEndpoint: (ApiEndpoint) endpoint failed: (NSError *) error;
和XCode将两个apidendpoint
参数都标记为错误应为类型
。我已经导入了apimager.h
,因此apidendpoint
确实显示在完成列表中,但由于某种原因,XCode无法识别它
我做错了什么?正如@trojanfoe神秘地删除了他的答案所指出的,循环依赖似乎是问题所在
将
typedef
移动到一个单独的文件apidendpoint.h
解决了这个问题。我建议使用typedef NS_ENUM(NSInteger,UITableViewCellStyle)宏来定义枚举。