Cannot find protocol deFinition for ‘SubVIEwControllerDelegate’
我的代码是这样的:
subvIEw.h
#import <UIKit/UIKit.h>#import "SuperVIEwController.h"@protocol SubVIEwControllerDelegate <NSObject> - (voID)someMethod:(NSData *)data;@end@interface SubVIEwController : UIVIEwController @property (weak,nonatomic) ID <SubVIEwControllerDelegate> delegate;@end
subvIEw.m:
[self.delegate someMethod:data];
SuperVIEw.h
#import <UIKit/UIKit.h>#import "SubVIEwController.h"@interface SuperVIEwController : UIVIEwController <SubVIEwControllerDelegate>@end
SuperVIEw.m:
#pragma mark - SubVIEw Controller Delegate Methods- (voID)someMethod:(NSData *)data{ NSLog(@"%@",data);}
我做错了什么或错过了什么?
解决方法 你有一个“import-cycle”,因为“SuperVIEwController.h”导入“SubVIEwController.h”,反之亦然.删除“SubVIEwController.h”中的#import“SuperVIEwController.h”
应该解决问题.
如果您确实需要在“SubVIEwController.h”中声明该类,请使用
@class SuperVIEwController;避免进口周期.
备注:< SubVIEwControllerDelegate>协议声明可能不是
在公共接口“SuperVIEwController.h”中根本需要.
在“SuperVIEwController.h”中,将类声明为
@interface SuperVIEwController : UIVIEwController
在“SuperVIEwController.m”中,使用协议定义类扩展:
@interface SuperVIEwController () <SubVIEwControllerDelegate>@end总结
以上是内存溢出为你收集整理的ios – 如何从子级到父级创建委派(subview-superview)全部内容,希望文章能够帮你解决ios – 如何从子级到父级创建委派(subview-superview)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)