setCameraDevice का उपयोग कर कैमरे को स्वैप करते समय आईओएस 7 क्रैश करें

मेरा आवेदन आईओएस 6.2 पर ठीक काम करने के लिए प्रयोग किया जाता था। चूंकि हमने कैमरे को स्वैप करते समय आईओएस 7 में अपडेट किया है (कुछ ऐसा जो हमने पहले ही किया था) यह दुर्घटनाग्रस्त हो जाता है।

यह मेरा कोड है:

-(void) swapCameras
{
    if (self.cameraDevice == UIImagePickerControllerCameraDeviceRear)
    {
        [self setCameraDevice:UIImagePickerControllerCameraDeviceFront];
    }
    else 
    {
        [self setCameraDevice:UIImagePickerControllerCameraDeviceRear];
    }
}

अगर मैं UIImagePickerControllerCameraDeviceFront के साथ कैमरा शुरू करता हूं तो यह पूरी तरह से काम करता है। लेकिन अगर मैं UIImagePickerControllerCameraDeviceRear से शुरू करता हूं या इसे क्रैश करते समय इसे बदलने का प्रयास करता हूं।

क्या यह आईओएस 7 पर एक बग दुर्घटनाग्रस्त है? क्या किसी और को यह दुर्घटना हुई है?

अग्रिम में धन्यवाद।

0

1 उत्तर

अगर किसी को भी एक ही समस्या का सामना करना पड़ता है, तो मुझे आईओएस संस्करण अपडेट करके समाधान मिला। यह बग तब हुआ जब मैं आईओएस 7.0.0 का उपयोग कर रहा था। मैंने इसे आईओएस 7.0.4 में अपडेट किया और अब यह क्रैश नहीं होता है। यह बग शायद इन दो संस्करणों के बीच किसी भी अद्यतन में सेब द्वारा तय किया गया है।

इसके अलावा, चूंकि यह अद्यतन अनिवार्य नहीं हैं और कुछ उपयोगकर्ता नवीनतम आईओएस संस्करण में अपडेट नहीं हो सकते हैं, इसलिए मुझे वर्तमान आईओएस संस्करण प्राप्त करने और क्रैश होने से बचने के लिए कोड में एक चाल बनाना पड़ा। मैंने निम्नलिखित मैक्रोज़ का उपयोग करके किया:

#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice]        systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice]   systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

फिर, मैं इसे इस तरह के कोड में उपयोग करता हूं:

if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0") && SYSTEM_VERSION_LESS_THAN(@"7.0.4"))
{
   //Do your work to avoid crash
}
0
जोड़ा