2017-02-18 7 views
0

소비자에게 내부 클래스와 메소드를 노출 "응용 프로그램 확장 API 만 허용"확인 Logger 클래스와 log 메서드는 프레임 워크의 내부에 있으며 일반적으로 건물은 ObjC에 노출되지 않습니다. 하지만 내 프레임 워크 타겟의 일반 설정에서 '앱 확장 API 만 허용'을 선택하면 생성 된 MyFramework-Swift.h에 이제 클래스 및 메소드 선언이 모두 포함되어 있습니다. 즉, 공개 선언 된 것처럼 프레임 워크의 소비자 모두에게 표시 될 수 있습니다. :는 아이폰 OS 프레임 워크 프로젝트에서 나는 간단한 아이폰 OS 프레임 워크 스위프트 프로젝트를 생성 한 스텁 방법 <code>log(_:)</code></p> <pre><code>class Logger: NSObject { func log(_ message:String) { // ... } } </code></pre> <p>와 함께 하나의 스위프트 클래스 <code>Logger</code>을 추가

SWIFT_CLASS("_TtC9Framework6Logger") 
@interface Logger : NSObject 
- (void)log:(NSString * _Nonnull)message; 
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; 
@end 

누군가 이유를 설명해 주시겠습니까? 미리 감사드립니다!

+0

코드 스 니펫을 게시하는 데 스크린 샷을 사용하면 안됩니다. – Losiowaty

답변

0

'앱 확장 API 만 허용'을 사용하면 생성 된 헤더에 공개 클래스와 내부 클래스가 모두 포함됩니다.

나는 이것은 단지 내가 제출하고 생성 된 Module-Swift.h

의 내용에 영향을 (가 아닌 확장 API를 참조하는 경우) 컴파일에서 방출 경고에 영향을 안이 설정으로 엑스 코드의 버그는 아마이라고 생각 지금 버그 신고.