0

我对 Objective-C 比较陌生。

我在网上找到了一个代码,它在 rootViewController.m 上有类似的东西(这是一个基于 navigationController 的应用程序)。

@interface RootViewController (CManagerDelegate) <CManagerDelegate>
@end

@interface RootViewController (PViewDelegate) <PViewDelegate>
@end

两个问题:

  1. 这些行在 rootViewController.m 的开头做了什么
  2. 这些行在代码中做了什么?在这种特殊情况下,请解释括号中和 <> 之间的内容。

谢谢。

4

2 回答 2

3

一句话:您发布的代码使RootViewController该类私下符合某些委托协议。

委托协议用于让一个类声明它理解来自另一个类对象的消息这一事实。例如,视图控制器可以声明它理解手势识别器的委托消息。

该类在内部使用手势识别器这一事实通常是与该类的其他客户端无关的实现细节。最好不要在公共接口中发布这个事实,而是将其放入实现(.m 文件)中。

类别(和类扩展)让您可以做到这一点:使类符合协议而不更改 main @interface

一个漂亮而优雅的解决方案!

于 2012-11-08T15:28:30.807 回答