在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)宏来定义枚举。