作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将一个大字典拆分成较小的 60kb block 。我该怎么做?
我尝试这样做的原因是为了在 iOS 和 watchOS 之间传输时超过 65.5kb 的用户信息传输限制。我可以将文件写入磁盘来解决问题,但在这种情况下它有点复杂,因为我要发送大量数据。
我的字典是这样的:
数据["sessionLog"]
键 sessionLog
包含我所有的值。
示例数据:
“纬度”:000000000000,
“长”:00000000000,
“名称”:“adfdsfs”,
“位置”:“asdfasdfadsf”,
“速度”:65
最佳答案
假设一项数据(假设你有一个巨大的数组)看起来像这样:
"lat": 000000000000,
"long": 00000000000,
"name": "adfdsfs",
"location": "asdfasdfadsf",
"speed": 65
如果您将 lat
和 long
存储在 Double
变量,name
和 location
在 String
中,speed
在 Int
变量中:
let lenName = name.lengthOfBytes(using:String.Encoding.utf8)
let lenLoc = location.lengthOfBytes(using:String.Encoding.utf8)
let total = lenName + lenLoc + MemoryLayout<Int>.size + (MemoryLayout<Double>.size * 2)
当然,您必须循环遍历这些项目,直到您达到接近您正在寻找的限制的某个地方。但请注意,前提是 String 值使用 UTF8 编码。因此,如果您使用不同的编码,这些值将会改变。
但希望这能为您提供一些可以使用的东西:)
关于ios - Swift,如何将字典拆分为 60kb 的 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42967582/
我是一名优秀的程序员,十分优秀!