Objective C,A关于协议中方法的返回类型的问题

时间:2011-02-14 06:07:40

标签: objective-c protocols

我的Type.h文件看起来像

typedef enum MessageType{
    msgTypeOne,
    msgTypetwo,
            .
            .
            .   
}

我定义了一个协议,协议中的方法试图返回MessageType .. 看起来像这样

#import <UIKit/UIKit.h>
#import "Type.h"

@protocol Message

- (int) getId;
- (MessageType) getType;
- (int) getSize;
- (NSData *) toBytes;
- (void) fromBytes:(NSData *)data;

@end

然后我收到一条错误消息“在协议之前可能没有指定类型或存储类”

有什么想法吗?我怎么解决这个问题?

提前致谢...

2 个答案:

答案 0 :(得分:4)

您需要typedef枚举MessageType。目前,您typedef enum MessageType为空。

将您的枚举代码更改为此,将MessageType放在右大括号后面:

typedef enum {
    msgTypeOne,
    msgTypetwo,
    // ... 
} MessageType;

typedef是用户定义类型MessageType的匿名枚举。您的协议现在应该正确编译。

答案 1 :(得分:0)

@Chayong Lee你需要在课程结束时定义protocol这样的事情

#import <UIKit/UIKit.h>
interface something : NSObject
{
}

@end
@protocol some

@end

如果你在界面中使用该协议,那么你需要做这样的事情

#import <UIKit/UIKit.h>

@protocol some;

interface something : NSObject
{
}

@end
@protocol some

@end