好的,我正在制作这个Apple Watch应用程序,在我的手表应用程序中,我有一个按钮。当你按下按钮时,它会这样做:
[WKInterfaceController openParentApplication:[NSDictionary dictionary] reply:^(NSDictionary *replyInfo, NSError *error) {
if(error) {
NSLog(@"%@",error);
}
}];在我的文件中,我这样做:
-(void) application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply {
//Code that is not importent and is confidential
reply([NSDictionary dictionary]);
}然而,当我按下按钮时,我会得到这个错误:
错误Domain=com.apple.watchkit.errors Code=2“iPhone应用程序中的UIApplicationDelegate从未调用reply()在-UIApplicationDelegate UserInfo=0x7fd2b9c35ae0中{NSLocalizedDescription=The UIApplicationDelegate在iPhone应用程序中从未调用reply()在-UIApplicationDelegate UserInfo=0x7fd2b9c35ae0中
我调用reply(),如上所示,但它没有看到这一点!而且,它忽略了我在里面的其他代码!
有人能解释为什么会发生这种事吗?
发布于 2015-05-29 01:52:08
从文件中:
replyInfo:包含返回到WatchKit应用程序的数据的字典。字典的内容必须可序列化为属性列表文件。本词典的内容由您自行决定,您可以指定为零。
如果你不发送一本有效的字典,你就得不到答复。
发布于 2015-03-24 12:25:57
您需要在后台任务中执行handleWatchKitExtensionRequest中的所有工作。您可以在这里找到文档:https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html
这篇博客文章可能也很有帮助:http://www.fiveminutewatchkit.com/blog/2015/3/11/one-weird-trick-to-fix-openparentapplicationreply
发布于 2015-05-13 14:08:10
错误"Error Domain=com.apple.watchkit.errors Code=2“-UIApplicationDelegate应用程序中的UIApplicationDelegate从不调用reply() --通常意味着应用程序的handleWatchKitExtensionRequest有错误和/或没有调用reply()或正确调用它。
文档在这里:ref/occ/intfm/UIApplicationDelegate/application:handleWatchKitExtensionRequest:reply
下面是一些使用NSDictionary响应的简单示例代码。
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply{
NSLog(@"containing app received message from watch");
NSDictionary *response = @{@"response" : @"MyResponse"};
reply(response);
}https://stackoverflow.com/questions/29220000
复制相似问题