我在.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