iOS开发之AFNetWorking 3.0 迁移的心路历程(坑点)

来源:互联网 发布:网页后台源代码数据库 编辑:程序博客网 时间:2024/06/06 20:09

引言:应苹果IPV6网络的普及,AFNetWorking笔者迅速更新进行支持,移除了NSURLConnection的网络请求库,改用NSURLSession。也就是从AFHTTPRequestOperation到AFHTTPSessionManager的转换。

迁移步骤:

  1. cocopods导入最新的AFNetWorking3.0;
  2. 修改网络请求管理者为AFHTTPSessionManager;
  3. 修改网络请求方法为:
[manager GET:URLString parameters:@{} progress:nil success:^(NSURLSessionTask *task, id responseObject) {        NSLog(@"JSON: %@", responseObject);} failure:^(NSURLSessionTask *operation, NSError *error) {        NSLog(@"Error: %@", error);}];

完成后编译OK并运行。

遇到的问题点:

真机下:

  1. 控制台报错如下:terminating with uncaught exception of type NSException
  2. 全局断点崩溃到以上方法

模拟器下:
1. 这里写图片描述
2. 全局断点也是崩溃到以上方法

初步解决方案为:

去除 progress:nil ,使用如下方法:
[manager GET:URLString parameters:@{} success:^(NSURLSessionTask *task, id responseObject) {        NSLog(@"JSON: %@", responseObject);} failure:^(NSURLSessionTask *operation, NSError *error) {        NSLog(@"Error: %@", error);}];

以上方式勉强能够运行,不过此方法报黄,已弃用。

最终解决方案:

  1. 由于Xcode4之后build放在系统的资源库隐藏起来了,所以打开终端 输入:“defaults write com.apple.finder AppleShowAllFiles TRUE
    killall Finder” 的命令 让隐藏的文件夹显示出来
  2. 然后点到桌面,在左上方的栏目里选择:前往-》个人-》资源库。资源库是半透明状的,你可以点右键,显示简介,然后找里面的developer。这个文件夹里面有个Xcode。点进去。你会发现一个名为:DerivedData的文件夹。把这个删除掉就可以了。
  3. 在终端中 pod install 这样就好了
  4. 记得 输入命令 “defaults write com.apple.finder AppleShowAllFiles FALSE
    killall Finder ” 将显示的隐藏文件 ,再隐藏回去

原因:pod的坑、苹果缓存的坑

0 0
原创粉丝点击