iOS 静态库私有方法和属性

iOS Static library private methods and properties

我想创建一个静态库。我有一个 class 例如 Class_A。这是一个 public class。所以我将 Class_A.h 添加到 Public Headers 部分。但是 Class_A 有一些我在库中使用的内部方法和属性,我想隐藏它们以供 public 使用。是否有可能一些如何从 public 使用隐藏私有方法属性和变量(我不希望其他开发人员看到它们。例如 UIKit classes 如何做到这一点),并取消隐藏以供内部使用?

在私有 Header 文件中创建私有扩展 "Class_A_Private.h"(您可以随意命名私有 header)。

#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" 包含在 public header 的列表中,而是将它们标记为私人 header。

参考:使用Class扩展隐藏私人信息

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