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

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

    } 

コンパイルエラー "オプションタイプの値AVCaptureDeviceInput?アンラップされていない "。これを修正する方法はありますか?Swift AVCaptureDeviceのオプションのタイプ

+0

'captureDeviceInput'はオプションで、あなたがあなたの' canAddInput'方法でそれを使用する前にそれをアンラップする必要があります。 –

+1

[オプション](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID309)のセクションをお読みください。スウィフトの本(と本書の残りの部分も)に掲載されています。 – 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

これを試してみてください:

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) 
    } 
} 
関連する問題