• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - iOS 9.0 中不推荐使用 ConnectionWithRequest

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:07:11 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我想从我的主机下载一些项目, 但现在我收到警告: 'connectionWithRequest:delegate:'在 iOS9.0 中已弃用 - 使用 NSURLSession'

我到处搜索,但不幸的是我找不到任何解决方案。

你能帮帮我吗?

我的代码如下所示:

- (void)downloadItems
{
    // Download the json file
    NSURL *jsonFileUrl = [NSURL URLWithString"http://myhost.com/test.php"];

    // Create the request
    NSURLRequest *urlRequest = [[NSURLRequest alloc] initWithURL:jsonFileUrl];

    // Create the NSURLConnection
    [NSURLConnection connectionWithRequest:urlRequest delegate:self];
}

#pragma mark NSURLConnectionDataProtocol Methods

- (void)connectionNSURLConnection *)connection didReceiveResponseNSURLResponse *)response
{
    // Initialize the data object
    _downloadedData = [[NSMutableData alloc] init];
}

- (void)connectionNSURLConnection *)connection didReceiveDataNSData *)data
{
    // Append the newly downloaded data
    [_downloadedData appendData:data];
}

- (void)connectionDidFinishLoadingNSURLConnection *)connection
{
    // Create an array to store the locations
    NSMutableArray *_locations = [[NSMutableArray alloc] init];

    // Parse the JSON that came in
    NSError *error;
    NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:_downloadedData options:NSJSONReadingAllowFragments error:&error];

    // Loop through Json objects, create question objects and add them to our questions array
    for (int i = 0; i < jsonArray.count; i++)
    {
        NSDictionary *jsonElement = jsonArray[i];

        // Create a new location object and set its props to JsonElement properties
        Location *newLocation = [[Location alloc] init];
        newLocation.idS = jsonElement[@"idStatistic"];
        newLocation.temp = jsonElement[@"temp"];
        newLocation.hum = jsonElement[@"hum"];
        newLocation.date_time = jsonElement[@"date_time"];

        // Add this question to the locations array
        [_locations addObject:newLocation];
    }

    // Ready to notify delegate that data is ready and pass back items
    if (self.delegate)
    {
        [self.delegate itemsDownloaded:_locations];
    }
}



Best Answer-推荐答案


NSURLConnection 行替换为:

 NSURLSession *session = [NSURLSession sharedSession];
    [[session dataTaskWithURL:jsonFileUrl
            completionHandler:^(NSData *data,
                                NSURLResponse *response,
                                NSError *error) {
                // handle response

            }] resume];

关于ios - iOS 9.0 中不推荐使用 ConnectionWithRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32838337/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap