2016-08-12 8 views
5

मैं UNUserNotificationCenter के साथ नई अधिसूचनाओं को कार्यान्वित कर रहा हूं। लेकिन मैं इसे पीछे की ओर संगत रखने की जरूरत है, इसलिए मैं हर जगह की जाँच करता है:जांचें कि आईएसओ 10 या संकलन समय के दौरान कम

if #available(iOS 10.0, *) { ... } 
else { ... } 

कौन सा iOS10 में ठीक से काम करने लगता है। UNUserNotificationCenter ढांचे का उपयोग करने में सक्षम होने के लिए, मैं आयात करने के लिए है:

import NotificationCenter 

लेकिन यह iOS9.3 दुर्घटनाओं, क्योंकि यह पता नहीं है कि यह क्या है। यह एक संकलन समय कार्रवाई, नहीं एक क्रम कार्रवाई है - तो इसका मतलब है कि मैं imports.If मैं एक अलग वर्ग बनाने पर शर्त नहीं रख सकते हैं, और डाल

@available(iOS 10.0, *) 
class .... 
वहाँ

आयात में भी कक्षा से पहले हो रही हैं कार्यान्वयन। मुझे इस मुद्दे के आसपास कैसे काम करना चाहिए?

+0

आप इस हो रही है क्योंकि आप "NotificationCenter" आयातित? – MCMatan

उत्तर

1

बिल्ड चरणों के लिए नेविगेट करने का प्रयास करें-> पुस्तकालयों के साथ बाइनरी लिंक करें और अधिसूचना केंद्र जोड़ें और स्थिति को "आवश्यक" के बजाय "वैकल्पिक" पर सेट करें।

+0

शायद आप "चरणों का निर्माण" करना चाहते थे, मैंने इसे वहां रखा और कुछ भी नहीं बदला। –

+0

अर्थ: मैं कक्षा से आयात को हटा नहीं सकता, फिर भी इसे वहां चाहिए। क्या मुझसे कुछ गलत हो रही है? –

0

सब से पहले आप का उपयोग करना चाहिए:

आयात UserNotifications स्थानीय सूचनाओं के लिए।

की स्थिति: Xcode 8 बीटा 6 और सिएरा beta6

कुछ परीक्षण कोड:

क) आईओएस 10 केवल तेजी से 3 के लिए:

override func viewDidLoad() { 
    super.viewDidLoad() 

    // ADC site: 
    // Listing 1 
    // Requesting authorization for user interactions 

/* चलो केंद्र = UNUserNotificationCenter.currentNotificationCenter () center.requestAuthorizationWithOptions ([। चेतावनी, साउंड]) {(दी गई, त्रुटि) } */

// swift 3.0: 
    let center = UNUserNotificationCenter.current() 
    center.requestAuthorization(options: [.alert, .sound]) { (granted, error) in 
     // Enable or disable features based on authorization. 
    } 

2) समर्थन आईओएस 9: (मैं बदल गया है तैनाती लक्ष्य)

// swift 3.0: 

    if #available(iOS 10.0, *) { 
     let center = UNUserNotificationCenter.current() 
     center.requestAuthorization(options: [.alert, .sound]) { (granted, error) in 
      // Enable or disable features based on authorization. 
     } 

    } else { 
     // Fallback on earlier versions 
    } 
संबंधित मुद्दे