我有UIView
班和UIViewController
班。我想在完成UIView
类中的某个任务后需要调用UIViewController
类中的方法。所以我确实喜欢这个。
在我的ViewClass
中`
#import "IntroView.h"
#import "FirstViewController.h"
@protocol SampleProtocolDelegate <NSObject>;
@required
- (void) processCompleted;
@end
@interface IntroControll : UIView<UIScrollViewDelegate> {
id <SampleProtocolDelegate> _delegate;
}
@property (nonatomic,strong) id delegate;
-(void)startSampleProcess; // Instance method
`
然后在My ViewController类中
`
#import "IntroControll.h"
@interface FirstViewController : UIViewController<SampleProtocolDelegate>
{
IntroControll *delegate;
}
`
但它在@interface FirstViewController : UIViewController<SampleProtocolDelegate>
“无法找到'SampleProtocolDelegate'的协议声明”
为什么会这样,我该如何解决这个问题。
请帮帮我 谢谢
答案 0 :(得分:0)
问题出现是因为您在IntroControll.h中导入FirstViewController.h。然后你完成了协议声明。
因此首先处理FirstViewController.h,因为ImtroControll.h尚未处理,所以无法找到协议声明。
如果不需要,从IntoControll.h中删除FirstViewController.h的导入。否则转发声明FirstViewController。
#import "IntroView.h"
@class FirstViewController;
@protocol SampleProtocolDelegate <NSObject>
@required
- (void) processCompleted;
@end
在IntroControll.m文件中导入FirstViewController.h。