私有方法作为公共方法出现

The*_*ner 4 objective-c public-method

我试图通过使用私有方法来改进我的应用程序的设计.来自.NET我有点困惑,因为我在.m文件中声明了这些方法,但是从其他文件中它们仍然显示出来,即它们仍然可以访问.

.m文件:

@interface NSContentWebServiceController (private)

- (NSString *)flattenHTML:(NSString *)html;
- (NSString *)cleanseStringOfJsonP:(NSString *)jsonP;
- (void)retrieve:(NSasdf *)hasdel :(NSDictionary *)rootList;   
- (NSString *)removeHTMLTagsFromString:(NSString *)aString;

@end
Run Code Online (Sandbox Code Playgroud)

Dar*_*ust 5

正如JoostK所说,Objective-C中没有私有方法,就像你在C++,Java或C#中使用它们一样.

最重要的是,表达式@interface NSContentWebServiceController (private)在Objective-C中定义了一个所谓的类别.private这里的术语仅仅是该类别的名称,没有任何意义.yellowBunny在这里有类似的东西会产生相同的效果.类别只是将类分解为几个部分的一种方法,但在运行时所有类别都有效.请注意,类别只能向对象类添加新方法,而不能添加新变量.

对于私有类别,现在首选使用匿名类别,因为@interface MyClass()您不需要单独的@implementation MyClass(yellowBunny)块,但只需将方法添加到主@implementation块.

有关详细信息,请参阅Objective-C上Wikipedia条目中"类别"部分.