MeTech’s diary

趣味でやってるアプリ開発の活動記録と備忘録を書いてます。

iOS11のVision.frameworkで遊ぶときに詰まったことメモ

iOS11のVision.frameworkで遊んで見た。

結構導入まで色々手こずったことがあったので備忘録として残しておく。

環境

・swift4
・xcode9.4.1

サンプルコードの解説

今回は上記のサンプルコードを取り込んで遊んでみることにした。
使い方や解説については以下の記事が参考になる。
iOS11のVision.frameworkを使ってみる

やったこと

資材をダウンロードして展開して、xcodeで開いて見ました。

詰まったこと

ファイルを開いてビルドすると以下の警告と異常が表示される。

インストールして開くと

警告2件
・swift4に変換してね
・ユーザーセッティングを推薦のものにアップデートしてね
異常1件
・学習モデルが読み込めないよ

「学習モデルが読み込めないよ」

なぜかCoreMLがimportされていなかったので以下を追記する。

import CoreML
「swift4に変換してね」

xcodeが自動でfixを提示してくれるのでそれに従う。

「ユーザーセッティングを推薦のものにアップデートしてね」

素直にユーザーセッティングをアップデートする。

上記をやってもでるエラー

<その1>

以下のコードだけは手動で変更が必要

×  guard let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) else { return }

○ guard let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)  as Optional else { return }
<その2>
<span style="color: #ff0000">The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "ターゲット名" target.
</span>

以下を参考にして解決
Swift 4で@objcに関するwarningが出たときの対処


これで導入できた!