根据苹果关于内部访问修饰符的文档:

 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

10-08 05:34