美文网首页
@(YES)和YES?@1:@0区别何在?

@(YES)和YES?@1:@0区别何在?

作者: 4VZhang | 来源:发表于2018-09-03 14:50 被阅读39次

    后台人员提供了一个网络请求接口,接口文档如下:

    接口文档.png
    使用字典将参数传递过来给后台,移动端提供的参数isAttentionBOOL类型,要转换成后台所需要的int类型;
    因为字典之中键值只能是对象类型,以往都是将int类型包装成NSNumber类型放在字典里进行传递,请求准确无误。
    方式一    :   {@"isAttention":@(isAttention)}
    方式二    :   [NSNumber numberWithBool:attention]
    方式三    :   attention ? @1 : @0
    

    不巧的是,今天使用上述两种方式都报错--400.

    Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option to allow fragments not set." UserInfo={NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set., NSUnderlyingError=0x604000c51100 {Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)" UserInfo={NSLocalizedDescription=Request failed: bad request (400), NSErrorFailingURLKey=http://test.******.com/jsb_webserver/attention/user, com.alamofire.serialization.response.error.data = <........>, com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x60400082f140> { URL: http://test.******.com/jsb_webserver/attention/user } { Status Code: 400, Headers { Connection = [ close ], Content-Language = [ en ], Content-Type = [ text/html;charset=utf-8 ], Content-Length = [ 1003 ], Date = [ Mon, 03 Sep 2018 06:34:01 GMT ] } }}}}
    最终使用第三种方式包装BOOL类型参数,请求成功的!!!
    但是本人还是有些不解,前两种写法和第三种有什么本质上的区别,
    求大神不吝赐教!!!

    相关文章

      网友评论

          本文标题:@(YES)和YES?@1:@0区别何在?

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