私は自分のアプリケーションのカメラ機能を提供するために取り組んでいます。私はチュートリアル(AppCoda:https://www.appcoda.com/avfoundation-swift-guide/)に従っていました。私は他のS.O.を見ました。その答えが解決されるためには、以下の文の右側がオプションでなければならないことを学びました。私はそれをオプションにしてエラーを修正する方法は?条件付きバインドの初期設定には、[AVCaptureDevice]ではなく、オプションの型が必要です
0
A
答えて
1
オプションを使用すると、変数にnilを持つことができます。コンパイラは、変数を使用する前に値があるかどうかをチェックしなければなりません。しかし、オプションがない場合、それはあなたにとって良いことです。値が常にあることが保証されているため、値を確認する必要はありません。
let cameras = session.devices.flatMap { $0 }
guard !cameras.isEmpty else { throw CameraControllerError.noCamerasAvailable }
を明らかにコールが配列[AVCaptureDevice]
、ないオプションの配列を返す[AVCaptureDevice]?
session.devices.flatMap { $0 }
ので:
は、したがって、あなたの場合には次のようにコードを書き換え、そこにオプションを望んでいません。したがって、コンパイラは、カメラが常に配列値を持ち、決してゼロでないことを保証することができます。したがって、カメラがないことを意味する空の配列を守ることができます(カメラのリストは空です)。
関連する問題
- 1. 条件付きバインドの初期設定にはオプションの型が必要です
- 2. 条件バインディングの初期設定には、 "UIView"ではなく、オプションの型が必要です
- 3. "条件バインディングの初期設定には '[String]'ではなく、オプションの型が必要です"
- 4. 条件付きバインディングの初期化子には '[NSObject:AnyObject]'以外のオプションの型が必要です。SwiftyJSON
- 5. 条件バインディングの初期化子には 'CGFloat'ではないオプションの型が必要です
- 6. Swift:エラー - 条件付きバインディングの初期化子には、ガードレットを使用するオプションのタイプが必要です。
- 7. エラー:オプションのバインディングの初期化子には、 'DetailViewController'ではなく、オプションの型が必要です
- 8. ガードletエラー:条件付きバインディングの初期化子に 'String'以外のオプションが必要です
- 9. ログインの構築中に条件付きバインディングエラーの初期設定
- 10. オプションのための条件付きバインド
- 11. スウィフト2:エラー:条件付きバインディングの初期化ツールには、機能のジオコーダ「CLPlacemark」ではなく、オプションのタイプが必要です
- 12. Swift条件付きバインディングにオプションの型が必要なキャッチからタプルを返す方法は?
- 13. "条件付きバインディングの初期化子にはオプションの型が必要ですが、 'string'ではなく、それ以外には何がありますか?結合条件のため
- 14. 条件付き書式設定がすべてではない
- 15. Apacheコモンで条件付きで必要なオプションを作成するCLI
- 16. state_machine初期状態を他の属性の条件付きに設定する
- 17. mod_rewriteに必要な初期設定は何ですか?
- 18. Visual Studio:条件付きブレークポイントを最初に設定せずに条件付きブレークポイントを設定する
- 19. SSIS条件付きスプリット条件設定
- 20. 条件付きのJavaScriptが資産パイプラインで必要です
- 21. 条件付きコメントは常に必要ですか?
- 22. 条件付き書式設定 - 最初の値が
- 23. 条件付きでパンダの列を設定するには?
- 24. Excel - 2条件付きの条件付き書式設定
- 25. rggplot - 条件付きでaes要素をNULLに設定する
- 26. 初期化子はオプションの種類ではなく、「日付」
- 27. Selectize.jsの条件付きオプション
- 28. SSRSで条件付きトグルを条件付きで設定する
- 29. AVCaptureDeviceは、私がAVCaptureDeviceをチェックするために私のアプリでは、いくつかの条件付きのコーディングを行わ
- 30. '[AVCaptureDevice]'から '[AVCaptureDevice]'への条件付きキャストは常に成功します。黄色の警告
あなたは.isEmptyと{ – coder
の間にelse文を忘れてしまったと思います –