在Objective-C和swift之间进行编码,不匹配

问题描述 投票:0回答:1

我的应用程序的网络请求已编码。

在Objective-C中

NSData *encodeData = [str dataUsingEncoding:NSUTF8StringEncoding];
dataStr = [encodeData base64EncodedStringWithOptions:0];

我想把它变成快速的。这是快速代码:

let dataEncodeTemp = dataTempStr.data(using: String.Encoding.utf8)
let dataStr = dataEncodeTemp?.base64EncodedString(options: Data.Base64EncodingOptions(rawValue: 0))

我想,结果应该是一样的。但事实并非如此。

Objective-C数据:

(lldb) po str// initial
{"userType":2,"password":"qazwsx2","account":"15921810000"}

(lldb) po dataStr // encoded
eyJ1c2VyVHlwZSI6MiwicGFzc3dvcmQiOiJxYXp3c3gyIiwiYWNjb3VudCI6IjE1OTIxODE3MDUzIn0=

快速的数据:

po dataTempStr // initial
"{\"userType\":2,\"account\":\"15921810000\",\"password\":\"qazwsx2\"}"

(lldb) po dataStr

▿ Optional<String> // encoded
  - some : "eyJ1c2VyVHlwZSI6MiwiYWNjb3VudCI6IjE1OTIxODE3MDUzIiwicGFzc3dvcmQiOiJxYXp3c3gyIn0="

我想知道为什么,并解决它。

我会试试这座桥。

有什么好办法吗?

objective-c swift encode
1个回答
2
投票

那些不会匹配,看到两个字符串有不同顺序的JSON键;一个是userTypepasswordaccount;另一个是userTypeaccountpassword

© www.soinside.com 2019 - 2024. All rights reserved.