• MJExtension使用


    数据是在聚合数据上请求下来的:请求部分的代码

    -(void)requestData{

        NSString *httpUrl = @"http://apis.baidu.com/heweather/weather/free";

        NSString *httpArg = @"city=beijing";

        [self request: httpUrl withHttpArg: httpArg];

    }

     

     

    -(void)request: (NSString*)httpUrl withHttpArg: (NSString*)HttpArg {

        

        NSString *urlStr = [[NSString alloc]initWithFormat: @"%@?%@", httpUrl, HttpArg];

        NSURL *url = [NSURL URLWithString: urlStr];

        NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: url cachePolicy: NSURLRequestUseProtocolCachePolicy timeoutInterval: 10];

        [request setHTTPMethod: @"GET"];

        [request addValue: @"b8f038fbad9435f8a3f3af48936c85c4" forHTTPHeaderField: @"apikey"];

        [NSURLConnection sendAsynchronousRequest: request

                                           queue: [NSOperationQueue mainQueue]

                               completionHandler: ^(NSURLResponse *response, NSData *data, NSError *error){

                                   if (error) {

                                       NSLog(@"Httperror: %@%ld", error.localizedDescription, error.code);

                                   } else {

                                       

                                       [self jsonToObject:data];

                                       

                                   }

                               }];

    }

     在这里遇到的问题是,我想当然的以为这个框架能够直接的将json数据转换为我们想要的模型,其实核心代码就真的只有一句话(重要的话要说三遍)

    其实,Basic *basic = [Basic objectWithKeyValues:resDic[@"basic"]];就是这句了,(不过既然传入的参数可以是人意类型的,那么为什么必须是字典才行。既然说了是键值,为什么又让传入的参数可以是任意类型的,这个不解,总之,)总之,你传入一个字典进去,还真的可以。

    需要注意的是,咱们创建的模型对象里的属性名称,需要对应字典的key值,那么问题来了,如果 服务器传过来的 字典数组里的字典的Key,是OC里的关键字,而使用MJExtention的前提是,模型里的属性名和数组的key一致才行(区分大小写),怎么办?

    使用replacedKeyFromPropertyName

    使用方法:1.在模型类.m文件引入"MJExtension.h"

        2.实现方法

    + (NSDictionary *)replacedKeyFromPropertyName

    {

        return @{@“非关键字的属性名” : @“数组的key”};

    }

    附上图:

    2015-09-17 11:20:27.124 MJExtensionDemo[2301:59353] basic:北京,中国,CN101010100,39.904000,116.391000

    2015-09-17 11:20:27.125 MJExtensionDemo[2301:59353] aqi:211,1,59,45,107,211,重度污染,5

     

     对了,在在请求数据的时候,本来是想用afn的,但是出现了一个问题不知道怎么解决,系统提示出来的是这个,实在不解,,

  • 相关阅读:
    Vue 项目在手机上,当input、时间组件获取焦点后组件变大问题
    关于部分手机whitespace失效问题
    网络安全环境IP纯净
    搭建蜜罐HFish
    windows隐藏某某命令
    mysql密码相关
    在k8s集群部署jenkins遇到的问题
    Mongodb简单的操作
    MongoDB安装
    上机编程认证03
  • 原文地址:https://www.cnblogs.com/mudy/p/4815871.html
Copyright © 2020-2023  润新知