ios9弃用方法替换

ios9弃用方法替换

iOS平台在快速的发展,各种接口正在不断的更新。随着iOS9的发布,又有一批老方法不推荐使用了,你若调用这些方法,运行的结果是没有问题的,但是会出现警告“**is deprecated :first deprecated in iOS 9.0 - Use ………”.:

在实际项目开发中,我们要秉承一个信念就是:要把每一个警告当做错误来处理,并解决每一个警告。你想想,你运行一个项目,就算运行成功了,但是出现几十个、甚至几百个黄黄的警告,心情是不是很糟糕呢?我将在这篇博客结合我的开发经验,罗列出iOS9中不推荐使用的方法,并换成苹果最新推荐的方式。本篇博客将会持续更新。

1.弹出提示对话框

在iOS9之前我们使用AlertView来弹出对话框,现在推荐使用AlertController,对于这个变化,请参考我的另一篇博客《iOS9使用提示框的正确实现方式》。

2.字符串编码的修改

ios9以前

 NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        ios9以后

第一种编码好长

 NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]];
第二种编码
NSURL *url = [NSURL URLWithString:[urlStr stringByRemovingPercentEncoding]];

3.【NSURLSession替换NSURLConnection】


ios9之前使用方法
----------

  //以下方法已经被禁用;
    NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

    NSData *data = [[param stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:data];
    //    非代理异步请求
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        if (connectionError) {
            YYLog(@"%@",connectionError);
        }
        if(data)
        {}
}

ios9之后使用方法
----------

  NSURL *url = [NSURL URLWithString:[urlStr stringByRemovingPercentEncoding]];
    //创建请求对象
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    NSData *data = [[param stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]dataUsingEncoding:NSUTF8StringEncoding];
    [request setHTTPBody:data];
     //创建session对象
    NSURLSession * session =  [NSURLSession sharedSession];
//    NSURLSession * defaultSession = [NSURLSession sessionWithConfiguration:defaultConfiguration];
    //添加任务
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable connectionError) {
        if (connectionError) {
        }

        if(data)
        { }

    }];
    //开始任务
    [dataTask resume];
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
iOS上使用OpenCV实现抠图背景图替换功能是可行的。OpenCV是一个开源的计算机视觉库,它提供了各种图像处理和分析技术,包括图像分割和图像合成等功能,非常适合进行图像背景替换。 具体实现步骤如下: 1. 导入OpenCV库:在iOS项目中,首先需要将OpenCV库导入到项目中,并进行相应的配置。 2. 图像分割:使用OpenCV提供的图像分割算法,如GrabCut算法,将目标对象与背景进行分离。该算法需要输入一张包含目标对象的图像,并对其进行初始化,引导GrabCut算法进行分割。 3. 背景替换:根据分割得到的目标对象,将它与另一张背景图像进行合成。可以使用OpenCV提供的透明度混合函数,将目标对象与背景图像进行混合。具体操作是通过像素级的合成运算,计算目标对象像素与背景图像像素之间的混合比例,从而实现替换背景的效果。 4. 后续处理:根据需求,可以对合成后的图像进行调整和优化。例如,可以对合成后的图像进行色彩调整、亮度调整或者模糊处理,以使合成的结果更加自然。 需要注意的是,在实现抠图背景图替换功能时,选择合适的图像分割算法和优化方法是非常重要的。这可能需要根据具体需求和实际情况进行调试和优化。 总结起来,使用iOS上的OpenCV库可以很好地实现抠图背景图替换功能。通过图像分割和背景替换等技术手段,可以将目标对象与不同的背景进行合成,实现抠图背景图替换的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值