引言:应苹果IPV6网络的普及,AFNetWorking笔者迅速更新进行支持,移除了NSURLConnection的网络请求库,改用NSURLSession。也就是从AFHTTPRequestOperation到AFHTTPSessionManager的转换。
迁移步骤:
- cocopods导入最新的AFNetWorking3.0;
- 修改网络请求管理者为AFHTTPSessionManager;
- 修改网络请求方法为:
[manager GET:URLString parameters:@{} progress:nil success:^(NSURLSessionTask *task, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
完成后编译OK并运行。
遇到的问题点:
真机下:
- 控制台报错如下:terminating with uncaught exception of type NSException
- 全局断点崩溃到以上方法
模拟器下:
1.
2. 全局断点也是崩溃到以上方法
初步解决方案为:
去除 progress:nil ,使用如下方法:
[manager GET:URLString parameters:@{} success:^(NSURLSessionTask *task, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(NSURLSessionTask *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
以上方式勉强能够运行,不过此方法报黄,已弃用。
最终解决方案:
- 由于Xcode4之后build放在系统的资源库隐藏起来了,所以打开终端 输入:“defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder” 的命令 让隐藏的文件夹显示出来 - 然后点到桌面,在左上方的栏目里选择:前往-》个人-》资源库。资源库是半透明状的,你可以点右键,显示简介,然后找里面的developer。这个文件夹里面有个Xcode。点进去。你会发现一个名为:DerivedData的文件夹。把这个删除掉就可以了。
- 在终端中 pod install 这样就好了
- 记得 输入命令 “defaults write com.apple.finder AppleShowAllFiles FALSE
killall Finder ” 将显示的隐藏文件 ,再隐藏回去