gpt4 book ai didi

iphone - 不要调用连接 :(NSURLConnection *)connection didReceiveData:(NSData *)data

转载 作者:行者123 更新时间:2023-11-29 13:19:58 24 4
gpt4 key购买 nike

我想从某个服务器下载一些文件。下载文件的功能在 Thread 中运行。所以,你可以在这里看到它:

    NSURL *url = [NSURL URLWithString:fileDataBaseURL];
NSURLRequest *theRequest=[NSURLRequest requestWithURL:url
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];

NSURLConnection *theConnection = [NSURLConnection connectionWithRequest:theRequest delegate:self];
if (theConnection) {
[[NSFileManager defaultManager] createFileAtPath:fileDataBaseEnc contents:nil attributes:nil];
self._handleDataBaseEnc = [NSFileHandle fileHandleForUpdatingAtPath:fileDataBaseEnc];
} else {
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];

}

我也有功能:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[_handleDataBaseEnc seekToEndOfFile];

NSMutableData *receivedData = [NSMutableData data];
[receivedData setLength:0];
[receivedData appendData:data];

[_handleDataBaseEnc writeData:receivedData];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
[_handleDataBaseEnc closeFile];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
[_handleDataBaseEnc closeFile];
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}

问题

为什么这三个功能不起作用?它不会调用,永远不会。

我该如何解决?

最佳答案

来自 Art 的回答:NSURLConnection delegate methods are not called

尝试在主线程上运行操作:

NSURLConnection * connection = [[NSURLConnection alloc] 
initWithRequest:request
delegate:self startImmediately:NO];

[connection scheduleInRunLoop:[NSRunLoop mainRunLoop]
forMode:NSDefaultRunLoopMode];
[connection start];

关于iphone - 不要调用连接 :(NSURLConnection *)connection didReceiveData:(NSData *)data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14607116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com