如何为我的项目公开方法而不公开API?

时间:2017-04-09 13:33:33

标签: ios objective-c

我编写了SDK,我的头文件MyClass.h带有公共API。

某些方法不会像- (void)foo;这样在标题中写入,因此用户无法使用它们。

但是我的其他课程使用方法foo,但由于它未在MyClass.h中注册 - 我也不能使用它。

因此,在每个想要调用方法foo的类中,我写道:

@interface MyClass ()
- (void) foo;
@end

合法吗?我需要在其他3个类中编写相同的内容,它看起来很奇怪。

那么发布方法用于内部使用而不是公共API的最佳做法是什么?

1 个答案:

答案 0 :(得分:2)

创建一个新文件。使用“Objective-C文件”模板:

choosing a file template 对于“文件”,输入“项目”。对于“文件类型”,选择“扩展名”。对于“Class”,输入“MyClass”(或任何真正的类名):

setting the file options

Xcode创建一个名为MyClass_Project.h的新文件。在此文件中,声明仅限项目的方法:

#import "MyClass.h"

@interface MyClass ()

- (void)foo;

@end

然后,在需要使用其中一种方法的每个.m文件中,在MyClass.m中,导入MyClass_Project.h。导入MyClass_Project.h的任何文件都不需要导入MyClass.h