什么是伞头?有什么用?我收到了一个警告,如下所示.这是什么意思?
<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"
Run Code Online (Sandbox Code Playgroud)
Glo*_*del 63
所述伞头为框架的"主"头文件.它的用途是你可以写
#import <UIKit/UIKit.h>
Run Code Online (Sandbox Code Playgroud)
代替
#import <UIKit/UIViewController.h>
#import <UIKit/UILabel.h>
#import <UIKit/UIButton.h>
#import <UIKit/UIDatePicker.h>
Run Code Online (Sandbox Code Playgroud)
等等.
对我来说,<XCTest/XCTestCase+AsynchronousTesting.h>
包括在内<XCTest/XCTest.h>
.也许它不适合你?在这种情况下,添加
#import <XCTest/XCTestCase+AsynchronousTesting.h>
Run Code Online (Sandbox Code Playgroud)
手动.
umbrella header
- iOSframework
或library
onObjective-C
或Swift
可以有一个头文件,其中包含对该项目中所有其他头文件的引用。
当您创建框架目标时,Xcode 会自动生成<targer_name.h>
文件。它应该具有相同的名称PRODUCT_NAME
例如<umbrella_name.h>
看起来像
#import "header_1.h"
#import "header_2.h"
Run Code Online (Sandbox Code Playgroud)
或者:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
//! Project version number for SomeModule.
FOUNDATION_EXPORT double SomeModuleVersionNumber;
//! Project version string for SomeModule.
FOUNDATION_EXPORT const unsigned char SomeModuleVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <SomeModule/PublicHeader.h>
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用下一个语法
#import <umbrella_name.h>
Run Code Online (Sandbox Code Playgroud)
代替
#import <header_1.h>
#import <header_2.h>
Run Code Online (Sandbox Code Playgroud)
在实践中,当您Framework
在Objective-C
[Example]或Swift
[Example]上创建一个时,此文件将自动创建<product_name>
使用
1. [ ]结构umbrella header
需要为 Objective-C 或 Swift使用模块(公开 Objective-C 头文件).modulemap
2.umbrella header
只能被Objective-C消费者使用以供纵容
3.umbrella header
有助于将每个 Objective-C 头文件导入 Swift 模块,这就是为什么你可以跳过import
Swift 会在你的伞头文件中看到你公开的每一个头文件。该框架中的 Objective-C 文件的内容可从该框架目标中的任何 Swift 文件中自动获取,无需导入语句。使用 Objective-C 代码中的类和其他声明,使用与系统类相同的 Swift 语法。
归档时间: |
|
查看次数: |
21317 次 |
最近记录: |