在我的自定义框架中,如果我想将一些类/方法暴露给swift或objective-c,我必须将它们声明为public,但是使用此方法,类和方法在框架头中公开。 有没有办法阻止将方法暴露给框架标题?
答案 0 :(得分:1)
如果你的框架是用Swift编写的,那么使用Access Levels - public,open,internal,file-private或private - documentation。您可能想要使用内部
如果您的框架是用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
继承,则可以在您的ClassB
标题中ClassA
如果您没有调用ClassB中的任何方法,您只需使用指向它的指针,因此编译器不需要知道ClassB
的完整签名。相反,您承诺在实际尝试使用它之前将包含ClassB
的完整定义。