【发布时间】:2012-03-02 16:28:31
【问题描述】:
我有两个视图,view1 调用 view2。我需要将数据从 view2 传递回 view1。所以我正在尝试设置一个代表。这是我在视图控制器 2 中得到的:
.h file
@protocol addEventDelegate <NSObject>
-(void) setAddedEventFlag:(BOOL) hasAddedEvent;
@end
@interface AddEventViewController : UIViewController <UITextFieldDelegate, UITextViewDelegate, UIPickerViewDelegate, UIPickerViewDelegate>
@property (weak, nonatomic) id delegate; //changed from strong to weak
然后我在 .m 文件中 @synthesize 委托
当尝试为第一个视图控制器包含 addEventDelegate 时,xcode 找不到它:
.h file
#import "AddEventViewController.h"
@interface FieldReportViewController : UIViewController <UITextFieldDelegate,
UITextViewDelegate, UIPickerViewDelegate, UIPickerViewDelegate, addEventDelegate>
我收到错误:“找不到 'addEventDelegate' 的协议声明”。
怎么了?
编辑:
//代码
错误:
【问题讨论】:
-
你的错误信息是
addEventDelegat——你确定你的代码拼写正确吗? -
其他一些注意事项: 1) 不应保留代表;您应该使用
weak或assign作为属性; 2) 如果您希望代表遵守协议,也应该在那里声明id<addEventDelegate> delegate; 3) 我很确定你不想在协议定义中使用<NSObject>——你确定你需要那个吗? -
是的,我很抱歉,我只是打错字了。它是'addEventDelegate'
-
这可能是一个导入循环吗?
标签: objective-c ios delegates