Swift,如何将字典拆分成60kb的块?

时间:2017-03-23 05:00:49

标签: ios swift watchkit

我试图将一个大字典分成更小的60kb块。我该怎么做?

我尝试这样做的原因是,在iOS和watchOS之间进行传输时,超过了65.5kb的userinfo传输限制。我可以将一个文件写入磁盘来解决这个问题,但在这种情况下它有点令人费解,因为我发送了大量数据。

我的字典是这样的:

data["sessionLog"]

sessionLog包含我的所有值。

示例数据:

"lat": 000000000000, "long": 00000000000, "name": "adfdsfs", "location": "asdfasdfadsf", "speed": 65

1 个答案:

答案 0 :(得分:0)

假设一项数据(假设你有一个巨大的数组)看起来像这样:

"lat": 000000000000,
"long": 00000000000,
"name": "adfdsfs",
"location": "asdfasdfadsf",
"speed": 65

如果您将latlong存储在Double变量namelocation String中,则可为每个项执行以下操作1}}和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)

{{1}}

然后当然,你必须遍历这些项目,直到你达到接近你想要的极限的地方。但请注意,这是为String值使用UTF8编码提供的。因此,如果使用不同的编码,则值会发生变化。

但希望这会给你一些你可以使用的东西:)