2012-07-27 20 views
10

जब भी उपयोगकर्ता लॉग इन करता है, और कई अन्य स्थानों पर मैं वर्तमान स्थान के लिए कॉल कर रहा हूं। जब भी मैं ऐसा करता हूं, तो उपयोगकर्ता द्वारा अनुमति मांगने के लिए अलर्ट व्यू एक या दूसरे के लिए प्रकट होता है, और फिर यह गायब हो जाता है। और जाहिर है, मुझे स्थान नहीं मिला है। यह हर बार होता है जब मैं स्थान के लिए संकेत देता हूं। यह उपयोगकर्ता को रद्द या ठीक क्लिक करने की अनुमति नहीं देता है। कृपयाCLLocationManager अलर्ट खुद को खारिज कर रहा है

+1

से ही हल किया गया। :) –

+0

मैं भी इस समस्या में भाग गया और समझ में नहीं आता क्यों! – tagyro

उत्तर

14

सहायता करें कि आप स्थान प्रबंधक को बनाए रखने की संभावना नहीं है। नतीजतन, जब आप [CLLocationManager startUpdatingLocation] कहते हैं तो अलर्ट दिखाया गया था लेकिन जैसे ही स्थान प्रबंधक जारी किया जाता है, यह गायब हो जाता है। यह मेरे साथ हुआ जब मैंने अपने स्थान के लिए बनाई गई संपत्ति में मजबूत होने के बजाय असाइन किया गया मैनेजर उदाहरण।

+0

मैंने ऐसा क्यों नहीं सोचा? धन्यवाद। – DCMaxxx

+0

@NikitaP इसे उत्तर के रूप में चिह्नित किया जाना चाहिए। –

0

मेरी परियोजना (स्विफ्ट लैंग) में एक ही समस्या का सामना करना पड़ रहा है।

इसे आजमाएं, CLLocationmanage परिवर्तनीय वैश्विक चर के रूप में और जहां आप चाहते हैं उसे कॉल करें।

पूर्व:

var locManager = CLLocationManager() 

    override func viewDidLoad() 
    { 


    super.viewDidLoad() 

let iOS7 = floor(NSFoundationVersionNumber) <= floor(NSFoundationVersionNumber_iOS_7_1) 

let iOS8 = floor(NSFoundationVersionNumber) > floor(NSFoundationVersionNumber_iOS_7_1) 

      locManager.delegate = self 
      locManager.desiredAccuracy = kCLLocationAccuracyBest 
      if(iOS8) 
      { 
       locManager.requestAlwaysAuthorization()// only support ios 8.0 
      } 

    } 
0

startUpdatingLocation के बाद प्रतिनिधि सेटर विधि ले जाने की कोशिश। इससे मेरा काम बनता है। उदाहरण:

CLLocationManager *m = [[CLLocationManager alloc] init]; 
[m startUpdatingLocation]; 
m.delegate = self; 

OPZ, मेरे गरीब अंग्रेजी।

0

मैं अपनी पोस्ट पर टिप्पणी नहीं कर सकता, इसलिए मैं यहां जवाब दे रहा हूं।

गियानलुका ट्रांकेडोन सही है। मैं अपने मामले में, मैं CLLocationManager बनाए रखा था। लेकिन: प्रतिनिधि को यह बताने के लिए कि स्थिति अनिश्चित है, अलर्ट व्यू दिखाए जाने के ठीक पहले, यह पहली कॉलबैक को आग लगती है। जब भी कॉलबैक प्राप्त हुआ तो मैंने उदाहरण जारी करने की गलती की।

इस विधि अब कैसा लग रहा है और यह काम करता है:

-(void)locationManager:(CLLocationManager*)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status { 
switch (status) { 
    case kCLAuthorizationStatusNotDetermined: 
     break; 
    default: 
     _locationManagerForAuthorizationRequest.delegate = nil; 
     self.locationManagerForAuthorizationRequest = nil; 
} 

}