web-dev-qa-db-ja.com

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

WKIInterfaceControllerのサブクラスで接続を行うたびに、エラーWatchKit error - unable to find interface controller class 'myClass' to instantiateおよびアクティビティインジケーターがシミュレーターに表示され、ビューが読み込まれません。すべての接続を切断すると、ビューは正しく表示されますが、エラーが発生します

試しました

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

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

WatchKit reloadRootControllersWithNamesが原因でエラーが発生します。pageControllerを使用するか、Push/popを実行した後

2つのリンクがバグを示唆しています。それがバグの場合、これはXCodeのリリースバージョンには存在せず、誰もがwatcKitを役に立たないものとしてレンダリングする同じ動作を経験するでしょうか?

20
JSA986

これを持っている他の人のために。クラスの作成時には、クラスを正しいターゲットメンバーシップ、つまりyourApp WatchKit ExtensionではなくyourApp WatchKit Appに設定する必要があります。インターフェイスビルダーのターゲットメンバーシップで編集することもできます。

23
JSA986

私はこの問題を次の方法で解決しました:

1)問題のあるInterfaceControllerファイルを削除し、プロジェクトのWatchKit Extensionのフォルダーに再度作成します(プロジェクトナビゲーターのグループだけでなく)。デフォルトでは、xcodeはWatch Appフォルダーを提供します-変更する必要があります。

2)moduleがProjectName_WatchKit_Extensionに設定されるように、Interface Builderでクラスを設定する

moduleが設定されていない場合-xcodeはクラスを見つけることができません

39

最近の8.2リリース以降、同じ問題が発生していました。私は各InterfaceControllersに移動し、そのカスタムクラスモジュールを、オプションまたは「none」として表示されているものに調整する必要がありました。

15
devone

WatchOSで新しいInterfaceコントローラーを追加した後、上記の問題が間違っているために発生します

"カスタムクラスのモジュール名":-

enter image description here

モジュールを拡張機能に変更した後上記の問題は解決されました。

enter image description here

9
Shrawan
1. select your WKInterfaceController
2. select Inherit Module From Target

enter image description hereenter image description here

2
Kamani Jasmin

私の場合、Watch Kit ExtensionからWatchKitExtensionまで。シミュレータで正常に実行されていましたが、プロジェクトを完全にクリーンアップした後は実行できませんでした。
https://stackoverflow.com/a/29904047/10417 に感謝します。
機能させるために、正しいモジュールを.storyboardファイル

2
tt.Kilew

Glanceインターフェースコントローラーを作成するときは、必ずWatch App Extensionに追加してください。これが私の問題でした。

1
VaporwareWolf

ここで、View Controllerがコンパイルソースにあることを確認する必要があります。[Project]を選択し、[Watchkit Extension Target]を選択し、[Build Phases]> [Compile Sources]を選択します。

1
zaolian

ここでの問題は、インターフェイスコントローラのモジュールを誤って設定したことです。これらのコントローラーはWatch Extensionターゲットに属しているため、以下のように製品モジュールを見つけることができます

製品モジュール名の検索方法を示す画像

image to show how to find the product module name

モジュール名を取得したら、先に進んで、各インターフェイスコントローラーに設定します。

製品名の設定方法を示す画像

image to show how to set the product name

1
haikynguyen

ModuleをWatch_Extensionに設定して解決しました

1
rgreso

ストーリーボードのモジュール名が、tagerts/XXX WatchKit App General Tab-> Frameworks、Libraries、and Embedded Contentの.appexファイルと同じであることを確認してください。

0
Evan

数時間、これに頭を悩ませました。ここのすべての提案に従いましたが、運はありません。

結局のところ、私が最初にやるべきことでした-ビルドフォルダーをクリーンアップしました。

Product> Clean Build Folder

0
bkwebhero

classinterfaceの両方についてtargetを参照してください。すべてがExtensionに設定されている必要があります

0
Ali

クラスを作成するときに、EXTENSIONSの新しいClassメンバーを必ず作成してください。

0
kavehmb

その特定のインターフェイスクラスのストーリーボードでモジュール名をクリアして修正しました。 (これは、objective-cクラスです)。

0
basvk

ウォッチストーリーボード>インターフェイスコントローラーシーン>アイデンティティインスペクター(Xcodeの右側のメニューに表示される5つのアイコンの真ん中のアイコン)> [[YourProjectName] Extension]にモジュールを設定すると、うまくいきました。

0
Josh