問題タブ [watchkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2899 参照

ios - XCode で Watch アプリを実行する方法

Apple のガイドラインに従ってウォッチ アプリを作成しましたが、シミュレーターで実行する方法がわかりません。

Watch App スキームを選択して実行すると、iPhone シミュレーターが表示され、WatchKit 拡張機能が実行されていることがわかります。

しかし、シミュレーターの画面では何も起こりません。

0 投票する
2 に答える
3400 参照

ios - ストーリーボードなしで (完全にコードで) WatchKit アプリを作成できますか?

私のチームは現在、ストーリーボードをまったく使用しない iOS アプリケーションに取り組んでいます。代わりにコードで UI を作成します。したがって、一貫性を保つために、Watch App ターゲットを完全にコードで作成できれば素晴らしいことです。

ただし、「WatchKit の概要」ビデオとWatchKit フレームワーク リファレンスの両方 で、Watch アプリ ターゲットのストーリーボードが必要であると述べられています。さらに、WKInterfaceObject.hメソッドinitは使用不可としてマークされています。

では、ストーリーボードを使わずに Watch アプリを作成することは本当に不可能なのでしょうか? もしそうなら、この決定の背後にある理由は何ですか? つまり、iPhone / iPad アプリは完全にコードで作成できるのに、Watch ではなぜ違うのでしょうか?

0 投票する
2 に答える
3095 参照

ios - ホスト アプリと拡張機能の両方で使用される共有アプリ コンテナー内のコア データ ストア内の一意のエントリを保証するにはどうすればよいですか?

私の質問を効果的にするために、まず私が直面している正確なシナリオを考えてみましょう:

一般的な設定

  • ホスト iOS 8 アプリ。
  • ホスト アプリにバンドルされている 1 つ以上の iOS 8 拡張機能 (WatchKit、Share など)。
  • ホスト アプリとすべての拡張機能は、共有アプリ グループ コンテナー内の同じ Core Data SQLite ストアを共有します。
  • 各アプリ/拡張機能には、独自の NSPersistentStoreCoordinator と NSManagedObjectContext があります。
  • 各永続ストア コーディネーターは、他のすべての永続ストアと同じ SQLite リソースをグループ コンテナー内で共有する永続ストアを使用します。
  • アプリとすべての拡張機能は、共通のコードベースを使用して、インターネット上のリモート API リソースからコンテンツを同期します。

問題につながる一連のイベント

  1. ユーザーがホスト アプリを起動します。リモート API リソースからのデータのフェッチを開始します。コア データ モデル オブジェクトは、API 応答に基づいて作成され、ホスト アプリのマネージド オブジェクト コンテキストに「アップサート」されます。各 API エンティティには、リモート API バックエンドでそれを識別する uniqueID があります。「アップサート」とは、API エンティティごとに、特定の uniqueID の既存のエントリが見つからない場合にのみ、ホスト アプリが Core Data に新しいエントリを作成することを意味します。

  2. 一方、ユーザーはホスト アプリの拡張機能の 1 つも起動します。これも、同じリモート API から何らかのフェッチを実行します。また、API 応答を解析するときに「アップサート」を実行しようとします。

  3. 問題:ホスト アプリと拡張機能の両方が同じ API エンティティのコア データ エントリを同時にアップサートしようとするとどうなりますか? これがどのように発生するかを確認するために、アップサートの一連のイベントを見てみましょう。

コア データ アップサート シーケンス:

  1. API 解析コードは、特定の API エンティティの uniqueID を解析します。
  2. uniqueIDパーサーは、解析された uniqueID と等しい述語に一致するすべてのエントリに対してコア データ フェッチを実行します。
  3. 既存のエントリが見つからない場合、パーサーはこの API エンティティの新しい Core Data エントリを挿入し、そのuniqueID属性を解析済みの uniqueID に設定します。
  4. パーサーは管理オブジェクト コンテキストを保存し、新しいエントリ データを SQLite バッキング ストアにプッシュします。

問題の詳細

ホスト アプリと拡張機能が、同じ API エンティティの API 応答を同時に個別に解析しているとします。ホスト アプリと拡張機能の両方がステップ 4 を完了する前にステップ 3 に到達した場合、両方とも同じ uniqueID の新しい Core Data エントリを挿入しようとします。ステップ 4 に到達save:し、それぞれの管理対象オブジェクト コンテキストを呼び出すと、Core Data は問題なく重複したエントリを作成します。

私の知る限り、Core Data には属性を一意としてマークする方法がありません。SQLite INSERT OR IGNORE+UPDATEコンボに相当する Core Data が必要です。. または、永続ストアの SQLite バッキング ストアを「ロック」する方法が必要です。これは、トラブルのレシピのように聞こえます。

iOS 8 拡張機能によって導入された、このかなり新しい問題に対する既知のアプローチはありますか?

0 投票する
6 に答える
13639 参照

ios - WatchKit のモーダル ビューからデータを戻す

インターフェイスコントローラーをモーダルに提示またはプッシュする場合、context次のようにパラメーターを指定して、新しいコントローラーにデータを渡すことができます。

私の質問は、どうすれば逆にできるでしょうか?

ユーザーがリストからアイテムを選択できるようにコントローラーをモーダルに提示し、メイン コントローラーに戻るとします。選択されたアイテムを取得するにはどうすればよいでしょうか?

0 投票する
5 に答える
18631 参照

ios - Apple Watch アプリにデータを渡す

アプリから Apple Watch アプリにデータを渡そうとしています。基本的に、today ウィジェットの作成に使用したのと同じ方法を使用しているため、NSUserDefaults を介してデータを渡しています。

問題は、アプリを実行すると、期待どおりにデータが Watch アプリのラベルを更新しないことです。

これが私が持っているものです...

このコードを に入れてみましwillActivate()たが、違いはないようです。

誰が私が間違っているのか知っていますか?

0 投票する
7 に答える
10503 参照

ios - watchkit 、iOS が時計と iPhone の間でデータを送信

時計にボタンを1つ作成し、時計をタップしながらiosアプリへの1つのプロセスを開始したいと考えています。2 つのデバイス間でデータを送信するにはどうすればよいですか

プラス

私のボタン時計では、それは動作しません

0 投票する
6 に答える
8923 参照

objective-c - WatchKit アプリの実行方法

新しいプロジェクトからウォッチキット アプリを実行できません。Apple のサンプル プロジェクトを実行すると、正常に動作します。ウォッチキットのターゲットを追加して、既存のプロジェクトにウォッチキットを追加するとします。次に実行すると、ストーリーボードに青い背景を持つメインに設定されたインターフェースコントローラーがありますが、時間とともに黒い画面が表示されます。このコード行が呼び出されます。

iPhone 用のメイン アプリ (iPhone アプリ) がシミュレーターで実行されません。

これは基本的に私が見ているものです。

右上隅に時間ラベルがあるApple Watch Simulatorの黒い画面

0 投票する
2 に答える
933 参照

iphone - Apple Watch のレイアウト

グループを挿入し、その中に 4 つのボタンを追加した Apple Watch 用の電卓を作成していますが、これらの 4 つのボタンを両方の Apple Watch 画面で調整するオプションが見つかりません。

アップルウォッチ 38mm

スクリーンショット

アップルウォッチ 42mm

スクリーンショット

グループのプロパティ

スクリーンショット

ボタンのプロパティ

ここに画像の説明を入力