Objective-C"私有"协议?

ryy*_*yst 5 cocoa protocols objective-c

我有一个处理UIView子类(MyView)的视图控制器类(MyViewController).我不想让除了视图控制器类的任何类了解UIView子类,所以我不能导入MyView.hMyViewController.h.

所以MyViewController.m,我说

#import "MyViewController.h"
#import "MyView.h"

@interface MyViewController (PrivateObjects)

MyView *myView;

@end

...
Run Code Online (Sandbox Code Playgroud)

但是,要从MyView获取反馈,我使用委托.该代表必须实施该MyViewDelegate协议.

我怎样才能实现MyViewDelegate内部协议MyViewController,而无需#import MyView.hMyViewController.h

ken*_*ytm 14

@interface MyViewController (PrivateObjects) <MyViewDelegate>
....
Run Code Online (Sandbox Code Playgroud)

(顺便说一句,你不能在一个类别中声明一个新的ivar.)