2011-02-14 91 views
1

的方法的返回类型问题我有Type.h文件看起来像目标C,大约在协议

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

我定义的协议,并在协议的方法试图返回的消息类型。 。 它看起来像这样

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

@protocol Message 

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

@end 

然后我得到一个错误说“没有类型或存储类可以在这里指定协议之前”

任何想法?我如何解决这个问题?

在此先感谢...

+0

这是一个文件吗?如果没有,您可能需要将定义您的类型的文件导入声明协议的文件中。那里的进口词是什么?你应该格式化你的代码,使其可读性和正确性。 – 2011-02-14 06:11:47

+0

我添加了导入,但stil出现错误。因此,在uikit导入语句下,我添加了Type.h,但它仍然不起作用 – codereviewanskquestions 2011-02-14 06:15:19

+0

请粘贴您的真实枚举代码。这是无效的Objective-C枚举语法。你可能会错误地输入它。 – BoltClock 2011-02-14 06:16:22

回答

4

您需要将您的枚举typedefMessageType。目前你是typedef ing enum MessageType什么也没有。

更改您的枚举代码这一点,将MessageType闭括号后:

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

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

0

@Chayong李你需要的阶级是这样

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

@end 
@protocol some 

@end 

末来定义,如果你正在使用该协议的接口,那么你需要做这样的事情

#import <UIKit/UIKit.h> 

@protocol some; 

interface something : NSObject 
{ 
} 

@end 
@protocol some 

@end