カスタムの ClockKit Complication を動作させようとしています。
- に準拠したカスタムComplicationController
CLKComplicationDataSource
を作成しました。として Watch 拡張機能の plist に追加されCLKComplicationPrincipalClass
ます。
時計でコンプリケーションを選択して有効にできますが、実際のプレースホルダーではなく「---------------」しか表示されません。
私が試したこと
override init(){…}
ComplicationController にカスタムを追加し、デバッグ用にブレーク ポイントを配置しました。しかし、Complicationビルド スキームを実行している場合でも、このブレーク ポイントに到達することはありません。私のカスタム ComplicationController はインスタンス化されていないようです。ログ メッセージは表示されます
Extension received request to wake up for complication support.
が、これがコードのどこでトリガーされているかが明確ではありません。InterfaceController
また、アクティブな合併症について調べるために、メインから次の呼び出しを試みましたif let server = CLKComplicationServer.sharedInstance() { for complication in server.activeComplications { server.reloadTimelineForComplication(complication) } }
…しかし、
server
nil を返します。アクティブでリロードされている合併症はありません。
質問
カスタム ComplicationController を正常に接続するにはどうすればよいですか?
また、デバッグに関する追加のヒントも歓迎します。
通常、ウォッチ シミュレーターまたは iPhone のウォッチ アプリからコンプリケーションを削除するだけで十分ですか、それとも、コンプリケーション関連の更新が有効であることを確認するには、ウォッチ アプリ全体を再インストールする必要がありますか? また、カスタム ComplicationController 内で何かをログに記録する場合、Complications ビルド スキームまたは通常の Watch アプリ ビルド スキームで実行している場合にのみ、その出力を表示する必要がありますか?
問題を見つけるためのアイデアは大歓迎です。