gpt4 book ai didi

ios - 检查发生了哪种 NSURLSessionTask

转载 作者:行者123 更新时间:2023-11-28 18:32:54 25 4
gpt4 key购买 nike

我好像遇到了麻烦。出于某种原因,如果我尝试检查我的 NSURLSessionTask 对象的类类型,它根本不起作用。如果我检查它们的 taskDescription 属性,如果我在启动任务之前设置它们,这当然有效。我只想知道为什么下面的代码对我不起作用。感谢您提供的任何帮助!

- (void)uploadIt
{
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration ephemeralSessionConfiguration];
defaultConfigObject.timeoutIntervalForResource = 15.0;
defaultConfigObject.requestCachePolicy = NSURLRequestReloadIgnoringLocalAndRemoteCacheData;

NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration:defaultConfigObject delegate:self delegateQueue:[NSOperationQueue mainQueue]];

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

NSURLSessionUploadTask *uploadTask = [defaultSession uploadTaskWithRequest:someRequest fromData:body];
[uploadTask resume];
}

- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

if (self.uploadResponseData)
{
NSDictionary *d = [NSJSONSerialization JSONObjectWithData:self.uploadResponseData options:kNilOptions error:nil];
NSLog(@"Dict: %@",d);
}

if ([task isKindOfClass:[NSURLSessionDownloadTask class]])
{
// Not called
}
else if ([task isKindOfClass:[NSURLSessionUploadTask class]])
{
// Not called
}
}

- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
{
if (!self.uploadResponseData)
{
self.uploadResponseData = [NSMutableData dataWithData:data];
}
else
{
[self.uploadResponseData appendData:data];
}
}

最佳答案

我的经验是在后台应用 NSURLSessionTask 的上下文中。它们被序列化到磁盘,涉及一个守护进程,我的经验是任何基于类的欺骗在这种情况下都不会很好地工作。

特别是,我试图子类化 NSURLSessionTask,但 -didComplete:... 调用返回的不是该子类的实例。

我开始将 NSURLSessionTask 视为外观,或“类集群”的一部分,并试图更加小心。

如果您需要将任务标记为特定类型,您可以在 .description 中存储您喜欢的任何内容。我可以确认信息在后台序列化后很好地保存下来。

关于ios - 检查发生了哪种 NSURLSessionTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24500545/

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