2011-11-24 14 views
5

जब मैं अपने ऐप को आईफोन में इंस्टॉल करता हूं और पहली बार चलाता हूं तो यह मूल स्थान सेवा के लिए उपयोगकर्ता अनुमति मांगता है। सिम्युलेटर के लिए छवि यहाँ है।आईफोन: कोर स्थान पॉपअप समस्या

मेरे ऐप में, एप्लिकेशन के बारे में मेरा पहला दृश्य वर्तमान स्थान की आवश्यकता है और उस स्थान पर आधारित है जहां यह कुछ घटनाओं को सूचीबद्ध करता है। यदि एप्लिकेशन स्थान नहीं मिल सका तो यह घटनाओं की डिफ़ॉल्ट सूची दिखाता है।

तो, मैं जानना चाहता हूं कि जब तक उपयोगकर्ता "Don't allow" या "ok" बटन पर क्लिक नहीं करता है तब तक एप्लिकेशन प्रवाह को पकड़ना संभव है?
मुझे पता है कि उपयोगकर्ता "अनुमति न दें" पर क्लिक करता है तो kCLErrorDenied त्रुटि निकाल दी जाएगी।

वर्तमान में क्या होता है, यदि उपयोगकर्ता किसी भी बटन पर क्लिक नहीं करता है, तो एप्लिकेशन डिफ़ॉल्ट सूची (स्थान के बिना) के साथ लिस्टिंग पृष्ठ प्रदर्शित करता है। और उसके बाद यदि उपयोगकर्ता "ok" बटन पर क्लिक करता है तो कुछ नहीं होता !!! मैं "ok" बटन पर पृष्ठ को रीफ्रेश कैसे कर सकता हूं?

धन्यवाद ...।

enter image description here

उत्तर

1

हाँ, बस कुछ भी नहीं जब तक उन प्रतिनिधि तरीकों लागू कर रहे हैं। जब वे 'ओके' पर क्लिक करते हैं, तो यह कोको के लिए सिर्फ एक सिग्नल है और फिर उपयोगकर्ता के स्थान को पुनर्प्राप्त करने का प्रयास करें - आपको अपने ऐप को ढूढ़ना चाहिए ताकि जब CLLocationManager में कोई स्थान हो या कोई नहीं मिल पाता है, तो आपका ऐप जारी रहता है।

आप कहना नहीं चाहते हैं, आपके ऐप को स्थान लौटाए/विफल होने तक रोक दें; यह ऑब्जेक्ट उन्मुख विकास के बारे में नहीं है।

0

आपके विचार में तर्क तब तक प्रतीक्षा करें जब तक CoreDocationToLocation या CoreFailWithError के CoreLocation प्रतिनिधियों को कॉल न किया जाए। क्या वे विधियां आपकी सूची को कॉल/इनिट करें और यूआई डेटा भरें।

नमूना नियंत्रक:

हैडर

@interface MyCLController : NSObject <CLLocationManagerDelegate> { 
    CLLocationManager *locationManager; 
} 

@property (nonatomic, retain) CLLocationManager *locationManager; 

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
      fromLocation:(CLLocation *)oldLocation; 

- (void)locationManager:(CLLocationManager *)manager 
     didFailWithError:(NSError *)error; 

@end 

कोड

#import "MyCLController.h" 

@implementation MyCLController 

@synthesize locationManager; 

- (id) init { 
    self = [super init]; 
    if (self != nil) { 
     self.locationManager = [[[CLLocationManager alloc] init] autorelease]; 
     self.locationManager.delegate = self; // send loc updates to myself 
    } 
    return self; 
} 

- (void)locationManager:(CLLocationManager *)manager 
    didUpdateToLocation:(CLLocation *)newLocation 
      fromLocation:(CLLocation *)oldLocation 
{ 
    NSLog(@"Location: %@", [newLocation description]); 

    // FILL YOUR VIEW or broadcast a message to your view. 

} 

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

    // FILL YOUR VIEW or broadcast a message to your view. 
} 

- (void)dealloc { 
    [self.locationManager release]; 
    [super dealloc]; 
} 

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