我似乎无法以我想要的方式构建我的协议,并且我已经缩小到使用派生类的问题。如果我使用可可类它似乎工作。这就是我的......
#import <Foundation/Foundation.h>
#import "MyView.h"
@protocol MyDelegate
- (void)view:(MyView *)aView didDoSomethingWithString:(NSString *)string;
@end
MyView类是......
#import <UIKit/UIKit.h>
@interface MyView : UIView {
NSString *whatever;
}
- (void)myMethod;
@end
@implementation MyView
- (void)myMethod {
doSomething...
}
@end
因此,当我尝试构建时,我在'MyView'之前得到错误“Expected')'”。如果我用UIView替换自定义类MyView,那么代码将编译。我希望有人看到我忽略的东西。任何想法都表示赞赏。
感谢。
答案 0 :(得分:2)
您确定MyView.h包含@interface MyView : UIView
吗?
此外,您可以使用@class代替导入。 e.g。
@class MyView;
@protocol MyDelegate
- (void)view:(MyView *)aView didDoSomethingWithString:(NSString *)string;
@end
答案 1 :(得分:1)
尝试将@interface和@implementation部分放在不同的文件中(如果您当前将它们放在同一个文件中)。看起来你在MyView.m中拥有了所有这些,并且你正在导入MyView.h,它不存在。