0
我創建了一個簡單的iOS框架斯威夫特項目,並添加了一個斯威夫特類Logger
用單存根方法log(_:)
檢查「只允許應用程序擴展API」中的iOS框架項目暴露出內部的類和方法,以消費者
class Logger: NSObject {
func log(_ message:String) {
// ...
}
}
Logger
類和log
方法是框架內部的,並且構建通常不會將它們暴露給ObjC
。但是,如果我在框架目標的常規設置中選中「僅允許應用擴展API」,則生成的MyFramework-Swift.h
現在包含類和方法聲明,這意味着兩者對於框架的使用者都是可見的,就好像它們被聲明爲公共:
SWIFT_CLASS("_TtC9Framework6Logger")
@interface Logger : NSObject
- (void)log:(NSString * _Nonnull)message;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
有人可以解釋爲什麼嗎?提前致謝!
您不應該使用屏幕截圖來發布代碼片段。 – Losiowaty