2012-10-20 8 views
5

मैं नए iOS deffered स्थान अद्यतन के 6 सुविधा का उपयोग लेकिन यह त्रुटि मिल रही पर रखने के लिए कोशिश कर रहा हूँ:स्थगित स्थान आईओएस 6 के साथ कैसे काम करें?

didFinishDeferredUpdatesWithError: त्रुटि डोमेन = kCLErrorDomain कोड = 11 "कार्रवाई पूर्ण नहीं किया जा सकता है (kCLErrorDomain त्रुटि। 11.) "

मैं निम्नलिखित कोड का उपयोग कर रहा:

- (DeviceAPI *) init 
    { 
    locationManager = [[CLLocationManager alloc] init]; 
    [locationManager setDelegate:self]; 
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; 
    [locationManager startUpdatingLocation]; 
    [locationManager allowDeferredLocationUpdatesUntilTraveled:(CLLocationDistance)100000  timeout:(NSTimeInterval)100000]; 

    return self; 
} 

और यह callback समारोह:

- (void)locationManager: (CLLocationManager *) manager 
         didFinishDeferredUpdatesWithError:(NSError *)error 
{ 
    NSLog(@"didFinishDeferredUpdatesWithError :%@", [error description]); 
} 

कोई मदद?

+0

त्रुटि 11 के लिए' 'kCLErrorDomain' है kCLErrorDeferredFailed' प्रलेखन [यहां] (https देखें:।। // डेवलपर। apple.com/library/mac/documentation/CoreLocation/Reference/CoreLocationConstantsRef/index.html#//apple_ref/c/tdef/CLError)। – Pang

+0

मुझे यह आईओएस 10 की तलाश में मिला http://stackoverflow.com/questions/39498899/deferredlocationupdates अनुपलब्ध-रिटर्न-नो-इन-आईओएस -10 –

उत्तर

0

क्या आपने अपनी जानकारी.प्लिस्ट UIBackgroundModes फ़ील्ड में स्थान सेट किया था?

+0

हां मेरे पास है ... मुझे यह भी पता चला है कि [CLLocationManager स्थगित स्थान अपडेटडेट्स उपलब्ध] FALSE लौटाता है। यह आईओएस 6 सिम्युलेटर और आईफोन 4 आईओएस 6 डिवाइस दोनों पर होता है। कोई विचार? – user1762103

0

मेरे परीक्षण में मैंने पाया है कि स्थगित अपडेट केवल आईओएस 6.0.1 या उससे अधिक में काम करते हैं, लेकिन 6.0 नहीं। मैंने 2 फोन 1 पर परीक्षण किया जो मैंने अपडेट किया था और 1 जिसे मैंने परीक्षण कारणों से 6.0 का उपयोग करके छोड़ दिया था। मेरा मानना ​​है कि यही कारण है कि सिम्युलेटर काम नहीं करता है और यदि आपका फोन अपडेट नहीं हुआ है तो यह संभावना है कि वह क्यों काम नहीं कर रहा है।

इसके अलावा, आप

लागू सुनिश्चित करें - locationManager: didUpdateLocations:

बजाय अब पदावनत

- locationManager: didUpdateToLocation: fromLocation:

के रूप में यह आस्थगित साथ प्रयोग के लिए आवश्यक है स्थान अपडेट

7

आईओएस 6.0 एसडीके के लिए Apple डेवलपर मंच के अनुसार, आस्थगित स्थान अपडेट ही उपलब्ध हैं:

    iPhone 5 हार्डवेयर पर
  • आईओएस 6.0 या उच्चतर
  • वांछित सटीकता चल kCLLocationAccuracyBest
  • करने के लिए सेट
  • "startUpdatingLocation" विधि को कॉल करें
  • लगभग 1 प्रति सेकंड
  • पर आने वाले स्थान अपडेट की प्रतीक्षा करें 210
  • तो अपडेट
  • टाल शुरू

देखें: https://devforums.apple.com/message/751974#751974

तो जैसे आप iPhone 5 हार्डवेयर की जरूरत है लगता है, और स्थान अद्यतन 1Hz पर में आने के लिए प्रतीक्षा करने के लिए।

इसके अतिरिक्त, जैसा कि एक अन्य पोस्टर का उल्लेख है, आपको स्थान प्रबंधक को लागू करने की आवश्यकता होगी: didUpdateLocations: आपके प्रतिनिधि में विधि।

-1

मैं [CLRegion initCircularRegionWithCenter] कॉल के लिए एक फ्रेमवर्क नमूने में इस विवरण पाया:

"अगर ओवरले के त्रिज्या बहुत बड़ी है, पंजीकरण स्वचालित रूप से विफल रहता है, तो अधिकतम मूल्य के लिए त्रिज्या क्लैंप।"

0

इससे पहले कि आप allowDeferredLocationUpdatesUntilTraveled फोन: समय समाप्त: kCLDistanceFilterNone के लिए दूरी फ़िल्टर सेट है, तो यह काम करेंगे

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