Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios PurgeidleCell连接_Ios - Fatal编程技术网

Ios PurgeidleCell连接

Ios PurgeidleCell连接,ios,Ios,关于此问题的“重复”状态: 这个问题是在2012年11月提出的,它包含问题的详细描述,有3个答案。 被称为“原件”的问题于2013年2月提出(本“副本”发布后3个月),没有详细说明,只有2个答案。它的两个答案中最好的只是一个链接的答案 为什么我会在控制台中收到此消息?: purgeIdleCellConnections: found one to purge conn = (some object-ID) purgeIdleCellConnections: found one to purg

关于此问题的“重复”状态:
这个问题是在2012年11月提出的,它包含问题的详细描述,有3个答案。
被称为“原件”的问题于2013年2月提出(本“副本”发布后3个月),没有详细说明,只有2个答案。它的两个答案中最好的只是一个链接的答案


为什么我会在控制台中收到此消息?:

purgeIdleCellConnections: found one to purge conn = (some object-ID)
purgeIdleCellConnections: found one to purge conn = (some object-ID)

当我的应用程序启动时,我会向服务器发送一条消息。我使用以下代码行执行此操作:

@implementation AppStatus {
    NSMutableData*   activeDownload;
    NSURLConnection* Connection;
}

- (id) init {
    self = [super init];
    if (self) {
        activeDownload = nil;
        Connection     = nil;
    }
    return self;
}

- (void)sendStatus:(NSString*)url {
    NSString* escaped = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURLConnection* conn =[[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:escaped]] delegate:self];
    Connection = conn;
    NSLog(@"%s Connection=%@",__PRETTY_FUNCTION__,Connection);
}
在同一个文件中,我有以下委托方法:

- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data {
    NSLog(@"%s connection=%@",__PRETTY_FUNCTION__,connection);
    [activeDownload appendData:data];
}

- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error {
    NSLog(@"%s connection=%@",__PRETTY_FUNCTION__,connection);
    activeDownload = nil;
    Connection = nil;
    //do nothing else; just ignore the error
}

- (void)connectionDidFinishLoading:(NSURLConnection*)connection {
    NSLog(@"%s Connection=%@",__PRETTY_FUNCTION__,Connection);
    NSString* answer = [[NSString alloc] initWithData:activeDownload encoding:NSUTF8StringEncoding];
    //do something usefull with the server's answer
    activeDownload = nil;
    Connection = nil;
}
当我在真实设备(而不是模拟器)上运行此应用程序时,我会在控制台中收到以下消息:

2012-11-22 20:41:51.309 BookMan[376:907] -[AppStatus sendStatus:] Connection=<NSURLConnection: 0x1dd7ff40>
2012-11-22 20:41:51.929 BookMan[376:907] -[AppStatus connection:didReceiveData:] Connection=<NSURLConnection: 0x1dd7ff40>
2012-11-22 20:41:51.935 BookMan[376:907] -[AppStatus connectionDidFinishLoading:] Connection=<NSURLConnection: 0x1dd7ff40>
purgeIdleCellConnections: found one to purge conn = 0x1dd8ff60
2012-11-22 20:45:11.927 BookMan[391:907] -[AppStatus sendStatus:] Connection=(null)
我在控制台中获得以下输出:

2012-11-22 20:41:51.309 BookMan[376:907] -[AppStatus sendStatus:] Connection=<NSURLConnection: 0x1dd7ff40>
2012-11-22 20:41:51.929 BookMan[376:907] -[AppStatus connection:didReceiveData:] Connection=<NSURLConnection: 0x1dd7ff40>
2012-11-22 20:41:51.935 BookMan[376:907] -[AppStatus connectionDidFinishLoading:] Connection=<NSURLConnection: 0x1dd7ff40>
purgeIdleCellConnections: found one to purge conn = 0x1dd8ff60
2012-11-22 20:45:11.927 BookMan[391:907] -[AppStatus sendStatus:] Connection=(null)
当我不创建连接时,我不会收到purgeIdleCellConnections消息


那么这条消息是什么意思?我为什么会收到它?:

purgeIdleCellConnections: found one to purge conn = (some object-ID)
purgeIdleCellConnections: found one to purge conn = (some object-ID)

在连接到蜂窝网络的设备上,我观察到来自iOS 6.0 SDK的调试消息。就时间而言,我发现它与我的应用程序中终止的“活动”AJAX调用相关。但是,很难证明任何事情,因为只有在UIWebView中呈现网页时才会发生这种情况。我只是说我不认为这些信息是善意的。我认为它们可能表明Apple框架中存在一个在终止连接方面过于激进的bug。很难在进行AJAX调用的UIWebView中运行javascript,因此目前这一切都是高度推测性的。

是的,这意味着操作系统将关闭手机数据(即仅3G)上的活动连接。您不应该使用Wifi连接看到这一点。操作系统清除连接似乎增加了向服务器发送数据请求的时间。

这意味着,空闲时间过长的连接关闭了其TCP连接。这是一个基本的机制,它的日志不应该打扰你,正如苹果在上所说的,这是一条错误地保留启用状态的调试消息


实际上,此日志仅在清除WWAN连接时显示

我不使用UIWebView,也不在我的应用程序中使用Ajax。我使用的都是上面描述的。如何解决这个问题,我需要我的应用程序也能在3G中工作。我该怎么修理this@ashokdy你有没有想过这个问题?我和你在同一条船上。。需要我的应用程序在中工作吗3G@holierthanthou84没有,我还没有找到任何解决办法。如果你发现了,请告诉我。@ashokdy。。。后来发现它并没有真正影响应用程序的性能,因此推断它是无害的:)