美文网首页
封装NetWorking进行网络数据解析

封装NetWorking进行网络数据解析

作者: 不高冷的龙拾柒 | 来源:发表于2016-08-15 01:00 被阅读0次

.h

#import <Foundation/Foundation.h>

@interface NetWorkingTool : NSObject
+(void)netWorkingWithURL:(NSString *)strURL block:(void(^)(id result))block;
@end

.m

#import "NetWorkingTool.h"

@implementation NetWorkingTool
+(void)netWorkingWithURL:(NSString *)strURL block:(void (^)(id))block{
    NSURL *url = [NSURL URLWithString:strURL];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    NSURLSession *session = [NSURLSession sharedSession];
    NSURLSessionTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        dispatch_queue_t queue = dispatch_get_main_queue();
        dispatch_async(queue, ^{
            id result = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
            block(result);
        });
    }];
    [task resume];
}
@end

在ViewController中
先引头文件

#import "NetWorkingTool.h"

在viewDidLoad中用一句话即可实现方法调用,即

[NetWorkingTool netWorkingWithURL:@"http://mrobot.pconline.com.cn/v2/cms/channels/999?pageNo=1&pageSize=20&appVersion=4.4.1" block:^(id result) {
}];
通过填进去一个网址,封装好的工具会给我们传出来一个重要的id类型参数result,我们只需分析传进去的网址的数据结构,考虑用字典/数据来接受这个result,然后再进行对应的数据解析,从而给我们的数据解析工作大大带来了方便,节省了宝贵的时间.
- (void)viewDidLoad {
    [super viewDidLoad];
      self.view.backgroundColor = [UIColor whiteColor];
    // Do any additional setup after loading the view.
    [self creatData];
    
}
-(void)creatData{
    //获取数据
   [NetWorkingTool netWorkingWithURL:@"http://mrobot.pconline.com.cn/v2/cms/channels/999?pageNo=1&pageSize=20&appVersion=4.4.1" block:^(id result) {
       //获取articleList里面的数据,存放到articleListArr数组里
       NSDictionary *dic = result;
       NSArray *articlearr = dic[@"articleList"];
       self.articleListArr = [NSMutableArray array];
       for (NSDictionary *temp in articlearr) {
           articleList *art = [[articleList alloc]init];
           [art setValuesForKeysWithDictionary:temp];
           [self.articleListArr addObject:art];
           [art release];
       }
           NSArray *focusarr = dic[@"focus"];
           self.focusArr = [NSMutableArray array];
           for (NSDictionary *temp in focusarr) {
               Focus *foc = [[Focus alloc]init];
               [foc setValuesForKeysWithDictionary:temp];
               [self.focusArr addObject:foc];
               [foc release];
           }
       
       self.hud.hidden = YES;
       [self creatView];
       [self.tableView reloadData];
     
   }];
}

相关文章

  • 封装NetWorking进行网络数据解析

    .h .m 在ViewController中先引头文件 在viewDidLoad中用一句话即可实现方法调用,即

  • iOS runtime进行数据解析封装

    iOS runtime进行数据解析封装 iOS runtime进行数据解析封装

  • ffmpeg 基础框架

    媒体的整体的处理流程大概如上,从存储/网络中读入数据,解析格式进行解封装然后进行解码,对解码后的数据进行处理,重新...

  • Flutter与原生混编-framework方式

    距离上次写Flutter【iOS 学习Flutter (网络库dio简单封装,数据解析)】[https://www...

  • iOS网络框架简单封装

    AFN 简单封装--iOS重构-轻量级的网络请求封装实践 YTKNetworking 网络框架封装源码解析:网络层...

  • json封装解析

    封装 数据格式 解析

  • Senior进阶 网络之数据解析

    Senior进阶 网络之数据解析 一、解析的基本概念 二、XML数据结构 三、进行XML数据结构解析时使用到的SA...

  • MVC,MVP,MVVM

    1.mvc Model:数据(存数据)。不应该为了适配某个view,在内部进行数据的解析和封装。 View:视图(...

  • OSI数据封装和解封

    数据封装 当主机跨越网络向其他设备传输数据时,就要进行数据封装,在OSI参考模型中,当一台主机需要传送用户的数据(...

  • YTTCoder

    最近工作之余对开发中用到的数据解析相关进行了整理,整合了开发中常用到的数据解析,并将其封装成模块.(持续完善中) ...

网友评论

      本文标题:封装NetWorking进行网络数据解析

      本文链接:https://www.haomeiwen.com/subject/wpqusttx.html