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

Ste*_*veB 9 cocoa objective-c nsurlconnection ios 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);
        }
    }];
Run Code Online (Sandbox Code Playgroud)

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

 ***cachedResponseForRequest:key:handler failed: 
Run Code Online (Sandbox Code Playgroud)

Error Domain = NSCocoaErrorDomain Code = 4099"操作无法完成.(Cocoa error 4099.)"(与名为com.apple.nsurlstorage-cache的服务的连接无效.)UserInfo = 0x17579030 {NSDebugDescription =服务连接命名为com.apple.nsurlstorage-cache失效.}; {NSDebugDescription ="名为com.apple.nsurlstorage-cache的服务连接无效.";

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

Dri*_*ico 7

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

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

然后,在设备上安装应用程序后,转到设置 - >常规 - >键盘 - >键盘 - >,然后打开"允许完全访问"按钮.


小智 5

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

只需选择目标(键盘) - >功能 - >打开应用程序沙箱 - >检查网络.传入连接(服务器)传出连接(客户端)