我有一个iOS库,我希望将某些方法公开给使用该API的我的应用,但明确禁止从其他应用调用这些方法。
现在我的内部方法位于特殊标题Foo+Internal.h
中,我的类上有(internal)
类别扩展名。只有我的应用程序包含此文件,但我怎么能主动禁止其他人使用这些方法?
答案 0 :(得分:1)
如果您只是在谈论C函数,那么您可以将所有源代码放入一个翻译单元并声明内部函数static
。
但是既然你在谈论Objective-C类的方法,答案是,最终,你不能。如果方法在您的库中,并且您将库提供给其他人,那么他们可以调用方法。
如果内部方法独立于库的其余部分,则可以创建库的外部版本(针对您的客户)和内部版本(供您自己使用)。不要在外部库中包含内部方法。
您还可以尝试使用#defines来混淆内部方法的名称。