目标c中的私有和受保护的@interface

时间:2014-08-13 20:42:31

标签: objective-c

我正在查看Objective-C类的.h文件,我看到其中有多个接口声明,我不确定它们之间的区别和含义是什么。

首先我看到了

@interface TAModel : NSObject

我认识到了。 TAModel是类,NSObject是它的超类。令我感到困惑的是,我看到了另一个接口声明:

@interface TAModel (Protected)

同样在另一个.m文件中(与前两个文件无关)我看到了:

@interface TAWorker (Private)

我想知道后两个是什么意思,他们在做什么。据我所知,使用objective-c,类之间没有真正的受保护可见性。

1 个答案:

答案 0 :(得分:0)

它正在创建一个类别类,他们将其保护/私有成员放入其中。通常的习惯用法只是创建一个类扩展(所以你经常会看到@interface Foo ();这里的区别在于你还可以在.m文件中声明更多的字段,而不仅仅是属性和方法。

这两种方式都不是真正受保护的或私有的,因为你仍然可以通过首先或通过id方法之一转换为performSelector:来技术上了解那里声明的内容。但它是伪私有的,因为如果它不在.h文件中,则不公开发布。