名为com.apple.nsurlstorage-cache的服务连接无效

时间:2014-09-11 20:06:33

标签: ios objective-c cocoa nsurlconnection ios8

我正在为iOS8创建一个自定义键盘,而且我很难搞清楚NSURLConnection的一些问题。

我正在使用sendAsynchronousRequest:方法,如下所示:

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        NSLog(@"recieved asynchronous response");

        if (!connectionError) {
            [self connection:nil didReceiveData:data];
            [self connectionDidFinishLoading:nil];
        }
        else{
            NSLog(@"connection failed - %@", connectionError);
        }
    }];

这一切似乎在一段时间(1-2天)内正常工作,我可以正确接收数据。在此之后,我开始看到以下错误消息:

 ***cachedResponseForRequest:key:handler failed: 

错误域= NSCocoaErrorDomain代码= 4099"无法完成操作。 (可可错误4099。)" (与名为com.apple.nsurlstorage-cache的服务的连接无效。)UserInfo = 0x17579030 {NSDebugDescription =名为com.apple.nsurlstorage-cache的服务连接无效。}; {     NSDebugDescription ="与名为com.apple.nsurlstorage-cache的服务的连接无效。&#34 ;;

我似乎能够再次正常工作的唯一方法是重置手机上的内容和设置。如果有人能指出我为什么会发生这种情况的正确方向,我将非常感激。提前谢谢。

4 个答案:

答案 0 :(得分:7)

这是因为设备不允许键盘使用互联网。

要解决此问题,请首先检查键盘扩展名的Info.plist是否为“RequestsOpenAccess”键的值为“YES”。

然后,在设备上安装您的应用后,转到设置 - >一般 - >键盘 - >键盘 - > ,并打开“允许完全访问”按钮。

答案 1 :(得分:5)

我也有这个问题。当我为我的应用程序编写小部件时,小部件可以使用网络。然后我找到了如何允许使用网络。

只需选择你的目标(键盘) - >能力 - >启用App Sandbox - >检查网络。传入连接(服务器)传出连接(客户端)

答案 2 :(得分:0)

我也有这个问题。当我为我的应用程序编写小部件时,小部件可以使用网络。然后我找到了如何允许使用网络。

只需选择你的目标(键盘) - >能力 - >启用App Sandbox - >检查网络。 传入连接(服务器) 外出贿赂(客户)

抱歉^ _ ^,现在我无法上传图片(因为我刚刚注册)。

答案 3 :(得分:0)

我找到了避免这个问题的方法。

要解决此问题,请在启动测试之前添加环境变量,如下所示:

  

XPC_SIMULATOR_LAUNCHD_NAME = “com.apple.CoreSimulator.SimDevice.04042E78-E743-4376-94E9-31842D4770B6.launchd_sim”

但是, 04042E78-E743-4376-94E9-31842D4770B6 取决于每个环境。所以它不能被硬编码。我正在寻找一种从项目设置中读取值的方法。