我如何摆脱 IOS 版本 "is partial: introduced in IOS X" Xcode 中的警告
How do i get rid of IOS version "is partial: introduced in IOS X" warnings in Xcode
所以,我有一些地方只有在特定版本之后才可用。一个例子是我在我的应用程序中引入的一些新的 NFC 东西:
@property(nonatomic, retain) NFCNDEFReaderSession *nfcSession;
我在方法中也有它,即使我检查 class 可用性,我也会得到它,例如:
if ([NFCNDEFReaderSession class]){
我的应用程序工作正常,但我收到 xcode 警告说
NFCNDEFReaderSession is partial: introduced in iOS 11.0
我环顾四周,但没有找到一种方法来告诉编译器它没问题并消除警告。
不胜感激!
您可以通过在代码周围添加 Clang“pragmas”来消除部分代码的特定警告。在这种情况下:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunguarded-availability"
// your code
#pragma clang diagnostic pop
文档:https://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas
将NS_AVAILABLE_IOS(11.0) 添加到方法名称的末尾。例如:
- (BOOL)tableView:(UITableView *)tableView canHandleDropSession:(id<UIDropSession>)session NS_AVAILABLE_IOS(11.0) {
}
方法调用可以包含在以下内容中以消除新的 API 警告
if (@available(iOS 11.0, *)) {}
要消除警告,请将目标的 "Other warning flags" 更改为:
- -Wno-partial-availability
- -Wno-unguarded-availability
您也可以在项目设置中关闭 Unguarded availability
。如果您使用的是 Cocoapods,它现在在 Pods
项目中默认启用。
所以,我有一些地方只有在特定版本之后才可用。一个例子是我在我的应用程序中引入的一些新的 NFC 东西:
@property(nonatomic, retain) NFCNDEFReaderSession *nfcSession;
我在方法中也有它,即使我检查 class 可用性,我也会得到它,例如:
if ([NFCNDEFReaderSession class]){
我的应用程序工作正常,但我收到 xcode 警告说
NFCNDEFReaderSession is partial: introduced in iOS 11.0
我环顾四周,但没有找到一种方法来告诉编译器它没问题并消除警告。
不胜感激!
您可以通过在代码周围添加 Clang“pragmas”来消除部分代码的特定警告。在这种情况下:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunguarded-availability"
// your code
#pragma clang diagnostic pop
文档:https://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas
将NS_AVAILABLE_IOS(11.0) 添加到方法名称的末尾。例如:
- (BOOL)tableView:(UITableView *)tableView canHandleDropSession:(id<UIDropSession>)session NS_AVAILABLE_IOS(11.0) {
}
方法调用可以包含在以下内容中以消除新的 API 警告
if (@available(iOS 11.0, *)) {}
要消除警告,请将目标的 "Other warning flags" 更改为:
- -Wno-partial-availability
- -Wno-unguarded-availability
您也可以在项目设置中关闭 Unguarded availability
。如果您使用的是 Cocoapods,它现在在 Pods
项目中默认启用。