2015-02-11 33 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