首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“application:handleWatchKitExtensionRequest:reply:]”应用程序中的UIApplicationDelegate从未调用iPhone () in -[UIApplicationDelegate iPhone

“application:handleWatchKitExtensionRequest:reply:]”应用程序中的UIApplicationDelegate从未调用iPhone () in -[UIApplicationDelegate iPhone
EN

Stack Overflow用户
提问于 2015-03-23 20:44:04
回答 4查看 3.3K关注 0票数 2

好的,我正在制作这个Apple Watch应用程序,在我的手表应用程序中,我有一个按钮。当你按下按钮时,它会这样做:

代码语言:javascript
复制
[WKInterfaceController openParentApplication:[NSDictionary dictionary] reply:^(NSDictionary *replyInfo, NSError *error) {
    if(error) {
        NSLog(@"%@",error);
    }
}];

在我的文件中,我这样做:

代码语言:javascript
复制
-(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(),如上所示,但它没有看到这一点!而且,它忽略了我在里面的其他代码!

有人能解释为什么会发生这种事吗?

EN

回答 4

Stack Overflow用户

发布于 2015-05-29 01:52:08

从文件中:

replyInfo:包含返回到WatchKit应用程序的数据的字典。字典的内容必须可序列化为属性列表文件。本词典的内容由您自行决定,您可以指定为零。

如果你不发送一本有效的字典,你就得不到答复。

票数 3
EN

Stack Overflow用户

发布于 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

票数 1
EN

Stack Overflow用户

发布于 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响应的简单示例代码。

代码语言:javascript
复制
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply{
    NSLog(@"containing app received message from watch");
    NSDictionary *response = @{@"response" : @"MyResponse"};
    reply(response);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29220000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档