मैंने अपना ऐपप्रोजेक्ट आईओएस 8 तैयार करने की कोशिश की। मैंआईओएस 8 अनुरोध WhenInUseAuthorization कोई पॉपअप
[_locationManager requestWhenInUseAuthorization];
बारे में बहुत कुछ और plist में प्रवेश
NSLocationWhenInUseUsageDescription
तो मैं सभी आवश्यक कोड लाइनों बदल पढ़ा था।
यह ठीक काम करता है, लेकिन अब मैंने अपनी परियोजना को फिर से अपने आईओएस 7 बेस से नई सुविधाओं को शामिल करने के लिए कॉपी किया है। लेकिन जब मैं आईओएस 8 स्थान गोपनीयता के लिए परिवर्तन करता हूं तो पॉपअप अब और प्रकट नहीं होता है।
मेरा कोड तब तक काम करता है जब तक मैंने कॉपी नहीं किया।
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>tolle sache </string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>fapporite.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
</plist>
और यहाँ मेरे कॉल है
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
_UserLocation = [[CLLocation alloc]init];
_locationManager = [[CLLocationManager alloc]init]; // initializing locationManager
_locationManager.delegate = self;
_locationManager.desiredAccuracy = kCLLocationAccuracyBest; // setting the accuracy
[_locationManager requestWhenInUseAuthorization]; // iOS 8 MUST
[_locationManager startUpdatingLocation]; //requesting location updates
NSLog(@"passed initwithcode");
}
return self;
}
मैं इसे कैसे ठीक कर सकते हैं?
यह मेरे लिए मुख्य समस्या थी। विवरण जोड़ने के बाद, संवाद पॉप अप रखा और फिर तुरंत गायब हो गया। फिक्स्डिंग जिसमें दो बदलावों की आवश्यकता होती है: दृश्य में अनुरोध करने का अनुरोध करें WillAppear: या बाद में, और अपने CLLocationManager के संदर्भ को संग्रहीत करना सुनिश्चित करें। यदि आप नहीं करते हैं तो इसे हटा दिया जाएगा और संवाद गायब हो जाएगा। – robotspacer
इसे देखने में भी जोड़ सकते हैंडलोड :, लेकिन CLLocationManager का संदर्भ रखने के लिए यह महत्वपूर्ण है। – OutOnAWeekend
तो (केवल पूर्णता के लिए), संदर्भ रखने के लिए, मैंने एक मजबूत संशोधक के साथ एक संपत्ति का उपयोग किया: '@property (मजबूत, nonatomic) CLLocation प्रबंधक * स्थान प्रबंधक;' –