1

App Delegate 内で次のメソッドを使用して、配列を InterfaceController に送信しようとしています。

- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply
{
NSLog(@"Request received by iOS app");

NSMutableArray *mutableArray = [[NSMutableArray alloc] initWithCapacity:20];

for (NSDictionary *object in [[NSUserDefaults standardUserDefaults] objectForKey:@"reminders"]) {

    NSString *subject = object[@"subject"];
    [mutableArray addObject:subject];
}

NSLog(@"MUTABLE ARRAY: %@", mutableArray);

NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:mutableArray, @"key", nil];


reply(dictionary);
}

インターフェイス コントローラーでは、次のようにします。

- (IBAction)callPhoneAppButtonTapped
{
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"text to display", @"key", nil];


[InterfaceController openParentApplication:dictionary reply:^(NSDictionary *replyInfo, NSError *error) {

 NSLog(@"Reply received by Watch app: %@", replyInfo);


}];
}

問題は、App Delegate で配列を確認できますが、Apple Watch の InterfaceController で応答を読み取れないことです。

このアプローチに関する提案、またはテーブルを作成するために配列を InterfaceController に送信するためのより良いアプローチはありますか?

4

1 に答える 1

1

watchOS2 では、WatchConnectivity と呼ばれる優れた機能が導入されています。この質問に対する私の返信を見てください: Objective-C の OS2 で Iphone から Apple Watch にデータを送信する方法

String/NSNumber の代わりに配列を送信するのは簡単です。

于 2015-07-07T09:24:09.573 に答える