だから、私は物事が特定のバージョンの後にのみ利用できるいくつかの場所があります。一例は、いくつかの新しいNFC私がアプリで導入したものです:
@property(nonatomic, retain) NFCNDEFReaderSession *nfcSession;
また、メソッドにもあります。たとえば、クラスの可用性を確認したとしても、次のようになります。
if ([NFCNDEFReaderSession class]){
私のアプリは正常に動作しますが、xcode警告が表示されます
NFCNDEFReaderSession is partial: introduced in iOS 11.0
私は見回しましたが、コンパイラに問題がないことを伝えて警告を取り除く方法を見つけていません。
ポインタは大歓迎です!
メソッド名の最後にNS_AVAILABLE_IOS(11.0)を追加します。例えば:
- (BOOL)tableView:(UITableView *)tableView canHandleDropSession:(id<UIDropSession>)session NS_AVAILABLE_IOS(11.0) {
}
メソッドの呼び出しを次のようにラップして、新しいAPI警告を抑制できます。
if (@available(iOS 11.0, *)) {}
コードの一部にClangの「プラグマ」を追加することで、コードの特定の警告を消すことができます。この場合:
#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
警告を止めるには、ターゲットの「その他の警告フラグ」を次のいずれかに変更します。