2015-09-12 15 views
7

की एक तर्क सूची के साथ 'लॉकफॉर कॉन्फ़िगरेशन' का आह्वान नहीं कर सकता है यह स्विफ्ट 2 है। मुझे इस पर कुछ भी नहीं मिल रहा है। मुझे त्रुटि मिल रही हैस्विफ्ट कंपाइलर त्रुटि: प्रकार '(() ->())'

Cannot invoke 'lockForConfiguration' with an argument list of type '(() ->())' 

दूसरी पंक्ति पर।

device.lockForConfiguration(nil) 

उत्तर

10
स्विफ्ट 2 विधि lockForConfiguration किसी भी तर्क नहीं ले करता है, लेकिन इसके बजाय एक NSError फेंक सकते हैं

। आपको इसे do - try - catch कथन में लपेटना चाहिए।

do { 
    try device.lockForConfiguration() 
} catch { 
    // handle error 
    return 
} 

// When this point is reached, we can be sure that the locking succeeded 
device.videoZoomFactor = 1.0 + CGFloat(ratioValue) 
device.unlockForConfiguration() 
+0

हां! यह काम किया, बहुत बहुत धन्यवाद। –

0

आप कोड की इस पंक्ति की कोशिश कर सकते हैं?

if let device = captureDevice { 
    device.lockForConfiguration(nil) 
    device.videoZoomFactor = 1.0 + CGFloat(ratioValue) 
    device.unlockForConfiguration() 
    print(ratioValue) 
} 
+0

मैं –

+0

'कॉल में अतिरिक्त तर्क' मिल रहा tuoni आप यहाँ error.Take एक नज़र को संभालने के लिए है: https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference /AVCaptureDevice_Class/index.html#//apple_ref/occ/instm/AVCaptureDevice/lockForConfiguration: –

0

इसे इस तरह नहीं होना चाहिए:

if let device = captureDevice { 
      device.lockForConfiguration() { 
       device.videoZoomFactor = 1.0 + CGFloat(ratioValue) 
       device.unlockForConfiguration() 
     } 
     print(ratioValue) 
    } 
+0

प्रकार '(शून्य)' की एक तर्क सूची के साथ 'लॉकफॉर कॉन्फ़िगरेशन' नहीं ले रहा है और 'कॉल फेंक सकता है, लेकिन यह चिह्नित नहीं है 'कोशिश करें' के साथ और एक ही पंक्ति पर त्रुटि को संभाला नहीं जाता है। –

+0

क्या आप दिखा सकते हैं कि आपने अपना डिवाइस कैसे प्राप्त किया? – mikle94

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