2015-02-11 55 views
0

我想创建一个静态库。我有一个例子,例如Class_A。这是一个公共课。所以我加Class_A.hPublic Headers部分。但Class_A有一些内部方法和属性,我在库中使用,我想隐藏它们供公众使用。是否有可能如何隐藏私人方法属性和变量从公共使用(我不希望其他开发人员看到他们,例如如何UIKit类这样做),并取消隐藏内部使用?iOS静态库私有方法和属性

+0

您可以创建“Class_A_Private.h”,并有类扩展那里,里面有你的私有成员和方法。 – gagarwal 2015-02-11 21:41:35

+0

你能写一个例子吗?我认为。我创建了'Class_A.h'(添加到公共头文件)和'Class_A_Private.h'(添加到私有头文件)。据我了解,我将在我的库'Class_A_Private.h'中使用,但外部开发人员将使用'Class_A.h'。好的,但界面应该如何。 'Class_A_Private.h'是否应该复制'Class_A.h'的公共部分等等? – rowwingman 2015-02-11 22:05:13

+0

只是不要在.h文件中声明你的方法。其他类不能访问这些方法。您只需在.h文件中声明公用方法。 – 2015-02-11 22:06:41

回答

3

在专用头文件“Class_A_Private.h”中创建专用扩展名(您可以根据需要命名私有头文件)。

#import "Class_A.h" 

//----------------------------------------------------------------------------- 
#pragma mark - Class Extension 

@interface Class_A() 

// Some properties and methods here. 

@end 

现在导入您的私有扩展在“Class_A.m”和其他源文件:

#import "Class_A_Private.h" 

请务必不要在公共场所头的名单包括“Class_A_Private.h”并将其标记作为私人标题。

参考:使用类扩展到隐藏个人信息

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html#//apple_ref/doc/uid/TP40011210-CH6-SW6