WatchKit: インターフェース コントローラー クラスが見つかりません 質問する

WatchKit: インターフェース コントローラー クラスが見つかりません 質問する

ストーリーボードにインターフェイス コントローラーを追加し、そのカスタム クラスを WKInterfaceController サブクラスに設定し、シミュレーターでアプリを起動して、指定されたインターフェイス コントローラーに移動してみました。

そうすると、次のエラーが発生します。

WatchKit エラー - インスタンス化するインターフェイス コントローラ クラス 'TestController' が見つかりません

コントローラーを操作しようとすると (たとえば、ボタンのアクションを起動しようとすると)、次のエラーが発生します。

  • *********** エラー - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID:(null) の clientIdentifier が見つかりません
  • *********** エラー - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID:7120004 の clientIdentifier が見つかりません

私は試したこの回答で推奨されているようにモジュール名を設定するしかし、それでも次のエラーが発生します。

  • WatchKit エラー - インスタンス化するインターフェイス コントローラ クラス '_TtC29myWatchApp_WatchKit_App19TestController' が見つかりません
  • *********** エラー - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID:(null) の clientIdentifier が見つかりません
  • *********** エラー - [SPRemoteInterface _interfaceControllerClientIDForControllerID:] interfaceControllerID:6E20004 の clientIdentifier が見つかりません

ベストアンサー1

WatchKit ターゲットの名前を変更した後にこのエラーが発生しましたが、最終的に次のことに気付きました。WatchKit ターゲットの名前を変更する場合は、Interface Builder でインターフェイスを調べて、それぞれのモジュール名も名前が変更されていることを確認する必要があります。

これを行うには、インターフェース コントローラーを選択し、Identity Inspector (または command-option-3) をクリックして、モジュール名を削除し、Tab キーを押します。新しいターゲット名が自動的に入力されます。これで私の場合は完了です。

おすすめ記事