2017-11-28 13 views
1
let captureDeviceInput: AVCaptureDeviceInput? 

    do { 
     captureDeviceInput = try AVCaptureDeviceInput(device: device) 
     if session.canAddInput(captureDeviceInput) { 
      session.addInput(captureDeviceInput) 
     } 

    } 

"선택적 유형 값 'AVCaptureDeviceInput?'의 컴파일 오류가 발생합니다. 풀지 않은 ". 이 문제를 해결할 수있는 방법은 무엇입니까?스위프트 AVCaptureDevice의 선택적 유형

+0

는'captureDeviceInput'는 선택 사항입니다, 당신은 그것을 푸는해야합니다. –

+1

[선택 사항] (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309) 섹션을 읽어보십시오. Swift 책 (및 나머지 책도)에서. – rmaddy

답변

0

어떤 문제를 해결할 수 있습니까?

예. 이 속성은 선택적 형식입니다. 그것을 풀어야합니다.

captureDeviceInput = try AVCaptureDeviceInput(device: device) 
if let captureDeviceInput = captureDeviceInput 
{ 
    if session.canAddInput(captureDeviceInput) { 
      session.addInput(captureDeviceInput) 
    } 
} 
else 
{ 
    // Do something for a nil result (or nothing, if reasonable) 
} 
0

이 시도 : 당신이 당신의`canAddInput` 방법에 사용하기 전에

import Cocoa 
import AVFoundation 

var captureDeviceInput: AVCaptureDeviceInput! 
var device: AVCaptureDevice! 
var session: AVCaptureSession! 

do { 
    captureDeviceInput = try AVCaptureDeviceInput(device: device) 
    if ((session?.canAddInput(captureDeviceInput)) != nil) { 
     session?.addInput(captureDeviceInput) 
    } 
}