根据苹果关于内部访问修饰符的文档:
For framework targets, only declarations with the public or open
modifier appear in the generated header.
现在我正在写一个混合的框架,有客观的C&Swift。在此范围内,我定义了一个swift类:
import Foundation
@objc(Utility)
internal class Utility:NSObject{
internal func getMyName() -> String
{
return "Got the name!"
}
}
但我仍然可以在框架的自动生成的标题中看到这一点:
SWIFT_CLASS_NAMED("Utility")
@interface Utility : NSObject
- (NSString * _Nonnull)getMyName;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
这是在Xcode8.2.1上,任何不按照文档说明执行的想法。
最佳答案
我引用了这篇文章https://stackoverflow.com/a/37324966/1242077,并标记了“Allow app extension API only”复选框,因为它甚至在自动生成的头中列出了内部类和方法。
我用这个方法来保持课堂的私密性:https://stackoverflow.com/a/33159964/1242077