ios - iPhone App 中的 UIApplicationDelegate 从未调用过回复

标签 ios watchkit apple-watch

我正在尝试使用以下代码从 watch 模拟器启动我的 iPhone 应用程序:

WKInterfaceController 子类

[WKInterfaceController openParentApplication:[NSDictionary dictionaryWithObject:@"red" forKey:@"color"] reply:^(NSDictionary *replyInfo, NSError *error) {
NSLog(@"replyInfo %@",replyInfo);
NSLog(@"Error: %@",error);
}];

AppDelegate.m

- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply
{
NSLog(@"appdelegate handleWatchKitExtensionRequest");
NSLog(@"NSDictionary: %@",userInfo);
NSLog(@"replyInfo: %@",replyInfo);
}

我得到的错误是:

Error: Error Domain=com.apple.watchkit.errors Code=2 "The UIApplicationDelegate in the iPhone App never called reply() in -[UIApplicationDelegate application:handleWatchKitExtensionRequest:reply:]" UserInfo=0x7f8603227730 {NSLocalizedDescription=The UIApplicationDelegate in the iPhone App never called reply() in -[UIApplicationDelegate application:handleWatchKitExtensionRequest:reply:]}

最佳答案

您需要调用回复 block ,即使您返回 nil。以下将解决您的错误:

- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply
{
NSLog(@"appdelegate handleWatchKitExtensionRequest");
NSLog(@"NSDictionary: %@",userInfo);
NSLog(@"replyInfo: %@",replyInfo);
reply(nil);
}

参见 the Apple documentation了解更多信息。您还可以返回一个 NSDictionary reply(myNSDictionary); 以及返回到您的 Watchkit 扩展的任何有用的信息,尽管字典只能包含可以序列化到属性列表文件的信息,所以例如,您可以传递字符串,但不能只传递包含对自定义类实例的引用的字典,而不先将它们打包为 NSData。

关于ios - iPhone App 中的 UIApplicationDelegate 从未调用过回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27835694/

相关文章:

ios - UITableViewCell 意外行为

ios - 使用 NSFetchedResultsController 核心数据重新排序 TableView 单元格 - Swift 3

ios - iOS9 中的 UIDatePicker 问题

ios - 如何在 WatchKit 应用程序中获取当前位置?

c++ - C++ 中的 Cocoa 委托(delegate)模式

ios - 表行加载时应用程序崩溃

ios - 如何在使用 AppDelegate 的 "[WCSession defaultSession] sendMessage"时在 watchOS 2 的特定接口(interface) Controller 中接收消息

ios - watch app和父iphone app之间的通信

ios - 如何在 Objective-C 的 OS2 中将数据从 Iphone 发送到 Apple Watch

ios - 应用程序图标未显示在 Apple Watch 应用程序中