在我的自定义框架中,如果我想将某些类/方法公开给 swift 或 objective-c,我必须将它们声明为公共(public)的,但是使用此方法,类和方法将在框架 header 中公开。 有没有办法防止将方法公开给框架 header ?
最佳答案
如果您的框架是用 Swift 编写的,则使用访问级别 - 公共(public)、开放、内部、文件私有(private)或私有(private) - documentation .您可能想使用internal
如果您的框架是用 Objective-C 编写的,则可以使用前向声明。而不是写
// ClassA.h
#import "ClassB.h"
@interface ClassA : NSObject
- (void)doSomethingWithClassB:(ClassB*)obj;
@end
写
// ClassA.h
@class ClassB;
@interface ClassA : NSObject
- (void)doSomethingWithClassB:(ClassB*)obj;
@end
// ClassA.m
#import "ClassB.h"
如果您的 ClassA
没有继承自 ClassB
,您可以在 中前向声明
header - 在 header 中,您没有从 ClassB 调用任何方法,您只使用指向它的指针,因此编译器不需要知道 ClassB
>ClassAClassB
的完整签名.相反,您 promise 在实际尝试使用它之前包含 ClassB
的完整定义。
关于ios - 自定义框架中的公共(public)类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45345715/