Как я могу отправить массив на Apple Watch с моего iPhone с помощью Objective-C?

Я пытаюсь отправить массив в 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, но не могу прочитать ответ в InterfaceController Apple Watch?

Любые предложения по этому подходу или лучший подход для отправки массива в InterfaceController для создания таблицы?


person ibjazz    schedule 06.07.2015    source источник
comment
Что вы имеете в виду под не можете прочитать ответ? Это словарь с нулевым ответом или искаженный словарь? Журнал NSLog(@"Reply received by Watch app: %@", replyInfo); вообще попадает под удар? Также попробуйте распечатать ошибку: if (error) NSLog(@"error=%@", error);   -  person SeaJelly    schedule 07.07.2015
comment
stackoverflow.com/questions/31178664/   -  person Philip    schedule 07.07.2015
comment
В вашем случае, если вы отлаживаете расширение набора часов (где вы можете увидеть словарь в запросе), вы не можете одновременно отлаживать приложение-компаньон... вам следует использовать Debug->Attach для обработки и выбора вашего приложения. . Затем вы должны увидеть ответ в контроллере интерфейса.   -  person Lorenzo    schedule 21.07.2015


Ответы (1)


В watchOS2 они представили приятную функцию под названием WatchConnectivity. Пожалуйста, посмотрите мой ответ на этот вопрос: Как отправить данные с Iphone на Apple Watch в OS2 в Objective-C

Легко отправить массив вместо String/NSNumber.

person Philip    schedule 07.07.2015