iOS9获取所在城市的接口及解析(简单的NSURLSession使用和新的编码方法使用)
2015-11-13 17:33
603 查看
[code]/* 定位当前城市的方法调用 */ [self asynGETJSONWithURL:@"http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js" completion:^(id result) { NSLog(@"%@", result[@"city"]); }];
[code]/* 方法实现 */ - (void)asynGETJSONWithURL:(NSString *)urlString completion:(void(^)(id result))block { /* 1.转码 */ NSString *enCodingStr = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; /* 2.创建URL对象 */ NSURL *url = [NSURL URLWithString:enCodingStr]; /* 3.创建请求 */ NSURLRequest *request = [NSURLRequest requestWithURL:url]; /* 4.创建链接接受数据 */ NSURLSessionTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { /* 5.数据解析 */ NSString *temResult = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; if (temResult.length == 0) { return ; } temResult = [temResult substringFromIndex:21]; temResult = [temResult substringToIndex:temResult.length - 1]; NSData* xmlData = [temResult dataUsingEncoding:NSUTF8StringEncoding]; id result = [NSJSONSerialization JSONObjectWithData:xmlData options:NSJSONReadingMutableContainers error:&error]; /* 6.通过block将result值返回出去 */ block(result); }]; [task resume]; }
相关文章推荐
- iOS 内存管理
- iOS 3D touch OC代码
- iOS中影响引用计数的方法
- iOS QQ第三方登录
- iOS编程中的音频知识(二):那么多种格式我应该用哪一个?
- iOS编程中的音频知识(二):那么多种格式我应该用哪一个?
- iOS编程中的音频知识(二):那么多种格式我应该用哪一个?
- RegexKitLite|IOS正则
- 欢迎使用CSDN-markdown编辑器
- EDStarRating(IOS星级评定)
- iOS后台播放音频
- IOS本地推送[转载]
- iOS好项目收集
- nagios 监控 cisco 交换机
- ios NSString md5 base64 urlEncode isEmail
- iOS编程中的内存管理方式
- iOS编程中的音频知识(一):文件格式和数据格式,哦!天哪
- iOS编程中的音频知识(一):文件格式和数据格式,哦!天哪
- iOS编程中的音频知识(一):文件格式和数据格式,哦!天哪
- 比较好的iOS的博客