2017-09-07 73 views
17

Yani, bazı şeylerin yalnızca belirli bir sürümden sonra kullanılabildiği yerler var.Nasıl IOS sürümünden kurtulmak "kısmi: IOS X'te tanıtıldı" uyarılar Xcode

if ([NFCNDEFReaderSession class]){ 
: Ben de ben örneğin, sınıf kullanılabilirlik için kontrol rağmen anladım yöntemleri içinde var

@property(nonatomic, retain) NFCNDEFReaderSession *nfcSession; 

: bir örneği benim app sunduk bazı yeni NFC şeyler

benim app çalışıyor, ama ben etrafına baktı ama gayet uyarı kurtulmak derleyici anlatmak için bir yol bulmuş değil

NFCNDEFReaderSession is partial: introduced in iOS 11.0 

diyerek bir xcode uyarı olsun.

İşaretçiler çok beğenildi!

cevap

26

yöntem adının sonuna (11.0) NS_AVAILABLE_IOS ekleyin. Örneğin:

- (BOOL)tableView:(UITableView *)tableView canHandleDropSession:(id<UIDropSession>)session NS_AVAILABLE_IOS(11.0) { 

} 

Yöntem çağrıları, uyarıyı susturmak için hedefin "Diğer uyarı bayrakları" değiştirmek için yeni API uyarısını

if (@available(iOS 11.0, *)) {} 
+1

bu isabetli, teşekkür ederiz! Bunu bir şekilde unuttum :) – Mathias

1

susturmak için aşağıdaki sarılmış olabilir ya:

  • -Wno-kısmi durumuna
  • -Wno-korumasız kullanılabilirlik
0

Ayrıca, proje ayarlarında Unguarded availability'u da kapatabilirsiniz. Cocoapod'ları kullanıyorsanız, Pods projesinde varsayılan olarak açıktır.

enter image description here