* .h和* .m文件中的两个接口

对不起,我的英语,让我的心说:)在我工作的一个项目中,我注意到了一个有趣的时刻。

在* .h文件中声明的接口:

@interface FrontViewController : UIViewController ... @end 

而在* .m文件中,我find了另一个接口。

 @interface FrontViewController() // Private Properties: @property (retain, nonatomic) UIPanGestureRecognizer *navigationBarPanGestureRecognizer; // Private Methods: - (IBAction)pushExample:(id)sender; @end @implementation FrontViewController ... @end 

为什么需要? 有什么意义? 我想这是为了方便。 是?

这是一个类扩展。 它通常用于声明一个类的私有方法和属性。

在这里阅读。

这是一个类扩展。 它允许你声明一个类的“private”方法和属性,即使你没有访问源。 主要用途是不要将这些方法作为接口的一部分公开。 与大多数语言不同,这些方法是运行时可发现的,所以这些方法的价值在于IDE自动完成,而不是阻止你的类的消费者调用隐藏的方法,这就是为什么我把私有引用。 在没有声明的情况下简单地定义实现中的方法是可能的,但是然后它们必须被实现在它们使用的任何地方之上。 宣布他们作为扩展防止这个问题。

如果扩展名被命名,那么它就成为一个可以用来在多个文件中分配你的类实现的类。

Interesting Posts