우산 헤더는 무엇입니까?
기본적으로 우산 헤더는 무엇입니까? 그 용도는 무엇입니까? 아래와 같이 경고를 받았습니다. 이것은 무엇을 의미 하는가?
<module-includes>:1:1: warning: umbrella header for module 'XCTest' does not include header 'XCTextCase+AsynchronousTesting.h' [-Wincomplete-umbrella]
#import "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework/Headers/XCTest.h"
우산 헤더는 프레임 워크에 대한 '마스터'헤더 파일입니다. 그것의 용도는 당신이 쓸 수 있다는 것입니다
#import <UIKit/UIKit.h>
대신에
#import <UIKit/UIViewController.h>
#import <UIKit/UILabel.h>
#import <UIKit/UIButton.h>
#import <UIKit/UIDatePicker.h>
등등.
나를 위해 <XCTest/XCTestCase+AsynchronousTesting.h>는 <XCTest/XCTest.h>. 당신을위한 것이 아닐까요? 이 경우
#import <XCTest/XCTestCase+AsynchronousTesting.h>
수동으로.
umbrella header- 아이폰 OS framework나 library에는 Objective-C해당 프로젝트의 다른 모든 헤더에 대한 참조를 포함하는 헤더 파일을 가질 수 있습니다.
프레임 워크 타겟을 생성하면 Xcode가 자동으로 <targer_name>.h파일을 생성 합니다. 이름은 다음과 같아야합니다.Product Name
Build Settings:
Product Name-기본값은$(TARGET_NAME:c99extidentifier)Product Module Name-기본값은$(PRODUCT_NAME:c99extidentifier)
예를 들어 <umbrella_name>.h같은 외모
#import "header_1.h"
#import "header_2.h"
결과적으로 다음 구문을 사용할 수 있습니다.
#import <umbrella_name>.h
대신에
#import <header_1>.h
#import <header_2>.h
또한 umbrella header일반적인 module map구조 도 필요합니다. [정보] [프레임 워크 모듈 예] [수동 생성]
실제로 Framework는 Objective-C[예제] 또는 Swift[예제]에서 생성 할 때이 파일이 자동으로 생성됩니다.<product_name>
프레임 워크 대상 Objective-C내로 가져 오기Swift
우산 헤더에서 Swift에 노출하려는 모든 Objective-C 헤더를 가져옵니다.
Swift는 우산 헤더에서 공개적으로 노출하는 모든 헤더를 확인합니다. 해당 프레임 워크에있는 Objective-C 파일의 내용은 import 문없이 해당 프레임 워크 대상 내의 모든 Swift 파일에서 자동으로 사용할 수 있습니다. 시스템 클래스에 사용하는 것과 동일한 Swift 구문으로 Objective-C 코드의 클래스 및 기타 선언을 사용하십시오.
참고 URL : https://stackoverflow.com/questions/31238761/what-is-an-umbrella-header
'Program Club' 카테고리의 다른 글
| static_warning이 있습니까? (0) | 2020.11.18 |
|---|---|
| Microsoft.WindowsAzure.ServiceRuntime 용 NuGet 패키지는 어디에 있습니까? (0) | 2020.11.18 |
| 데이터 가져 오기시 Firestore 성능 저하 문제 (0) | 2020.11.18 |
| 'git merge'는 세부적으로 어떻게 작동합니까? (0) | 2020.11.18 |
| C # 6.0 문자열 보간 지역화 (0) | 2020.11.18 |