2015-09-10 4 views
11

मैं एक्सकोड 7 बीटा 5 के साथ एक ऐप विकसित कर रहा हूं। जब मैं अपने ऐप को अपने आईफोन 6 पर चलाता हूं और यदि मैं अपना आईफोन काम करता हूं तो इसे क्लाउडकिट से कनेक्ट करने का प्रयास करता हूं वाईफाई मोड में यह सब ठीक है, मैं अपना पूरा डेटा प्रदर्शित करता हूं; लेकिन अगर मेरा आईफोन एलटीई मोड में काम करता है तो मैं किसी भी प्रकार का डेटा नहीं देख सकता। क्या किसी को भी यह करना आता है?आईओएस 9 क्लाउडकिट: सेलुलर नेटवर्क से कनेक्ट होने पर क्वेरी कुछ भी वापस नहीं करती है

func getRecordsFromCloud() { 

    lavori = [] 

    / 

    let _cloudContainer = CKContainer.defaultContainer() 
    let publicDatabase = CKContainer.defaultContainer().publicCloudDatabase 

    / 

    let predicate = NSPredicate(value: true) 
    let query = CKQuery(recordType: "Lavori", predicate: predicate) 

    / 

    let queryOperation = CKQueryOperation(query: query) 

    queryOperation.desiredKeys = ["image","name"] 
    queryOperation.queuePriority = .VeryHigh 
    queryOperation.resultsLimit = 50 

    queryOperation.recordFetchedBlock = { (record:CKRecord) -> Void in 

     let lavoriRecord = record 

     self.lavori.append(lavoriRecord) 



    } 

    queryOperation.queryCompletionBlock = { (cursor:CKQueryCursor?, error:NSError?) -> Void in 

     if (error != nil) { 

      print("Failed to get data from iCloud - \(error!.localizedDescription)") 

     } 
     else { 

      print("Successfully retrieve the data from iCloud") 

      dispatch_async(dispatch_get_main_queue(), { 
       self.tableView.reloadData() 

      }) 

     } 

    } 

    / 

    publicDatabase.addOperation(queryOperation) 

} 

धन्यवाद, एलेसियो

उत्तर

13

सेटिंग एप्लिकेशन खोलें, आपकी एप्लिकेशन ढूंढने में, सक्षम 'मोबाइल डेटा का उपयोग'

अद्यतन: नीचे चर्चा के रूप में निम्न कोड पंक्ति समस्या हल जोड़ा जा रहा है :

queryOperation.qualityOfService = .UserInteractive 

कारण यह काम एक समय/लोड मुद्दा होना चाहिए। मेरे प्रारंभिक अनुमान होगा कि इस इस लाइन के कारण होता है:

queryOperation.queuePriority = .VeryHigh 

दस्तावेजों .queuePriority इस के लिए कहा गया है: आप केवल उन्हीं गैर निर्भर संचालन की सापेक्षिक प्राथमिकता वर्गीकृत करने के लिए की जरूरत प्राथमिकता मूल्यों का उपयोग करना चाहिए।

प्रलेखन .qualityOfService के लिए कहता है: इस संपत्ति का डिफ़ॉल्ट मान NSOperationQualityOfServiceBackground है और आपको जब भी संभव हो, उस मूल्य को स्थान पर छोड़ देना चाहिए।

तो कृपया .queuePriority और .qualityOfService दोनों को हटाने का प्रयास करें और देखें कि यह काम कर रहा है या नहीं।

अपडेट 2: जाहिर है यह क्लाउडकिट बग है। अधिक लोगों के पास एक ही समस्या है। कृपया इसे https://bugreport.apple.com

+0

सेटिंग ऐप में 'मोबाइल डेटा का उपयोग करें' पहले से ही सक्षम किया गया था ... –

+1

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

+0

मुझे यह भी लगता है कि यह अजीब है ... उसी ऐप में मेरे पास एक आरएसएस रीडर है और यह वाईफ़ाई और एलटीई के साथ पूरी तरह से काम करता है ... मुझे –

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