2017-09-07 7 views
17

में चेतावनियां तो, मेरे पास कुछ ऐसे स्थान हैं जहां चीजें केवल एक निश्चित संस्करण के बाद उपलब्ध हैं। एक उदाहरण के लिए कुछ नए एनएफसी सामान मैं अपने अनुप्रयोग में पेश किया है है:मैं आईओएस संस्करण से कैसे छुटकारा पा सकता हूं "आंशिक है: एक्सओएस एक्स में पेश किया गया है" एक्सकोड

if ([NFCNDEFReaderSession class]){ 
:

@property(nonatomic, retain) NFCNDEFReaderSession *nfcSession; 

मैं भी तरीकों, जहां मैं इसे पाने के बावजूद मैं वर्ग उपलब्धता के लिए जाँच, उदाहरण के लिए में पाना

मेरे ऐप ठीक काम करता है, लेकिन मैं एक xcode चेतावनी

NFCNDEFReaderSession is partial: introduced in iOS 11.0 

कह मैं चारों ओर देखा है, लेकिन एक तरह से संकलक है कि यह ठीक है और चेतावनी से छुटकारा पाने के बताने के लिए नहीं मिला है मिलता है।

पॉइंटर्स की बहुत सराहना की!

उत्तर

26

NS_AVAILABLE_IOS (11.0) विधि नाम के अंत में जोड़ें। उदाहरण के लिए:

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

} 

विधि कॉल नई एपीआई चेतावनी

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

धन्यवाद, यह जगह पर हिट! इस बारे में किसी भी तरह भूल गए :) – Mathias

5

आप अपने कोड के कुछ हिस्सों पर क्लैंग "प्रागमा" जोड़कर विशिष्ट चेतावनियों को चुप कर सकते हैं। इस मामले में:

#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

1

मौन करने चेतावनी मौन करने के लिए, करने के लिए लक्ष्य को "अन्य चेतावनी झंडे" बदलने के निम्नलिखित में लिपटे जा सकता है या तो:

  • -Wno-आंशिक उपलब्धता
  • -Wno-असुरक्षित-उपलब्धता
0

आप प्रोजेक्ट सेटिंग्स में Unguarded availability भी बंद कर सकते हैं। यदि आप कोकोपोड्स का उपयोग कर रहे हैं, तो यह अब Pods प्रोजेक्ट में डिफ़ॉल्ट रूप से चालू है।

enter image description here

संबंधित मुद्दे

 संबंधित मुद्दे