我在.h
文件中声明的enum
如下:枚举的委托方法声明
typedef enum {
item1 = 0,
item2,
item3
} myEnum;
我想在一个视图控制器使用它在一个委托方法签名如下:
@protocol myClassDelegate <NSObject>
- (void)myDelegateMethod:(enum myEnum)type;
@end
我在这个视图控制器类中包含了.h
文件。
创建上述协议时,自动完成不会提示枚举,编译器也会抱怨。
它可以正常使用int
而不是签名中的枚举。但是,我想知道是否有/使用枚举的方式,或者如果我做错了什么。
我已经经历了很多帖子,但都是正常的方法。
编辑:
ViewControllerA.h
#import <UIKit/UIKit.h>
#import "ViewControllerB.h"
typedef enum {
item1 = 0,
item2,
item3
} myEnum;
@interface ViewControllerA : UIViewController <myClassDelegate>
@end
ViewControllerB.h
#import <UIKit/UIKit.h>
#import "ViewControllerA.h"
@protocol myClassDelegate <NSObject>
- (void)myDelegateMethod:(enum myEnum)type; // Autocomplete does not suggest the enums
// Also, x-code gives warning: Declaration of 'enum myEnum' will not be visible outside of this functio
@end
@interface ViewControllerB : UITableViewController
@property (nonatomic, strong) id<myClassDelegate> delegate;
@end
将'(enum myEnum)type'更改为'(myEnum)type'适用于我。 – gabbler 2014-12-08 09:38:51
已经尝试过,没有工作。你是否使用它来进行委托方法声明? – kRiZ 2014-12-08 09:44:07
对不起,我没有将它用于委托方法,稍后会尝试。 – gabbler 2014-12-08 09:45:06