数据的类型由字符串变为字典操作

开始的时候服务器返回的data为空,是个字符串格式,但是修改之后data是字典对象。这样就导致了我在使用的时候出现问题。解决方法就是在你使用的时候加以判断。


开始未操作时的数据:

responseObject:{

    accountid = "";

    data = "";

    errorCode = 2013;

    msg = "Autch er gaat iets mis, je punten kunnen niet worden opgehaald. Probeer het later nog eens.";

    "msg_help" = "";

    "msg_other" = "";

    "msg_statistics" =     (

    );

    sourceCode = "";

    token = "";

}

data为空是NSCFConstantString类型,这样我们将它转成字典时,取值就会出现错误[__NSCFConstantString objectForKeyedSubscript:]: unrecognized selector sent to instance

没有这个按照key值取值的方法。


修改过之后返回的数据:

responseObject:{

    accountid = 399D60546B7C41A4E050A8C001681122;

    data =     {

        Achternaam = 45;

        Noodnummber = " 31123456789";

        Tussenvoegsel = 243;

        Voornaam = 34;

        "ice_id" = 399F1EECA3594618E050A8C00168133D;

    };

    errorCode = 0000;

    msg = success;

    "msg_help" = "";

    "msg_other" = "";

    "msg_statistics" =     (

    );

    sourceCode = "";

    token = "";

}


修改过之后,dataNSCFDictionary类型,我们就可以像这样dic[@"Achternaam”]取值了。


处理方法:我们可以判断它是属于哪一个类,处理方式如下:

            NSDictionary *dic;

            if (![[[info objectForKey:@"responseMessage"] objectForKey:@"data"] isKindOfClass:[NSDictionary class]]) {

                secrecyDataModel.ICEfirstname = @"";

                secrecyDataModel.ICEmiddlename = @"";

                secrecyDataModel.ICElastname = @"";

                secrecyDataModel.ICEmobile = @"";

                secrecyDataModel.ICEid = @"";


            }else{

                dic = [[info objectForKey:@"responseMessage"] objectForKey:@"data"];

                secrecyDataModel.ICEfirstname = dic[@"Voornaam"];

                secrecyDataModel.ICEmiddlename = dic[@"Tussenvoegsel"];

                secrecyDataModel.ICElastname = dic[@"Achternaam"];

                secrecyDataModel.ICEmobile = dic[@"Noodnummber"];

                secrecyDataModel.ICEid = dic[@"ice_id"];

            }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值