0

我开始在 iOS 开发世界中遇到了一些不熟悉的东西。在我的MainViewController.m文件中,我有:

//import statements

@interface MainViewController() <CarouselViewDelegate>
//declaration of properties
@end

@implementation
//code
@end

MainViewController.h文件看起来像这样

@interface MainViewController : UIViewController
//code
@end

我感到困惑的是,这是做什么的(一般意义上)@interface MainViewController() <CarouselViewDelegate>:. 看起来它使用泛型,但不确定这里发生了什么。

任何帮助表示赞赏,谢谢!

4

2 回答 2

2

第一部分@interface MainViewController()类扩展

它允许您以私有方式(而不是在头文件中)扩展类接口。它与 Objective-C类别相同,但它是匿名的。

第二位<CarouselViewDelegate>表示类扩展将符合CarouselViewDelegate 协议

所有协议都是一个接口,它定义了一个类可以(@optional)或必须(@required)采用的方法,以便以某种能力为另一个类工作。在这种情况下,协议是某个名为 的类的委托CarouselView协议。

您必须查看特定的协议文档或接口才能了解它的作用。您还必须将至少一个实例连接CarouselViewMainViewController委托以使其有用;通常这是在界面生成器中使用IBOutlets完成的,但也可以通过编程方式完成,例如cv.delegate = mainVC.

于 2013-11-07T16:19:58.793 回答
0

这意味着您将要实现名为的委托CarouselViewDelegate

换句话说,CarouselViewDelegate是由另一个类(可能称为 )发布的一组方法CarouselView,期望有人实现。在这种情况下,您MainViewController将实施它们。

Java中的一种接口,但不一样。

更多信息在这里:

iOS 中的委托和数据源

于 2013-11-07T15:56:16.023 回答