【发布时间】:2023-03-24 21:46:01
【问题描述】:
有人能解释一下找出 Int 类型的最佳方法吗,自从 Swift 4 以来,我在使用 JSON 时遇到了很多麻烦
因为当我尝试将相同的 json 对象映射到核心数据实体和 PONSO 时,这种情况很常见
所以,
id: Int = json["id"] as? Int // works
id: Int32 = json["id"] as? Int32 // doesn't work
因此,我无法同时满足这两个要求。我能在 Swift 4 中避免这种绝对毫无意义的 int 情况吗?
【问题讨论】:
-
如果您有任何特定的 JSON 问题,请显示 JSON 以及您用于解析它的代码。
-
上面的代码没有展示任何与 JSON 相关的内容。
[String: Any]是“一个绝对可以用 Swift 表达的任何数据类型的 String 字典”。这通常被草率地用于 JSON,但是使用 NSJSONSerialization 解析 JSON 永远不应该生成您在此处给出的字典。以上没有什么是“毫无意义的”,它看起来完全符合规则,因此解释您要解决的问题可能会有所帮助。 JSON 没有 32 位或 64 位整数类型。 -
请注意,Swift 的 Int 与 ObjC 的 NSInteger 匹配,并且(就像在 ObjC 中一样)是 Swift 中几乎所有“类似整数”的东西的推荐类型。除非需要低级交互或确保 32 位平台上的非常大的整数,否则强烈建议不要使用特定的位宽。它们不是为在 Swift 中通用而设计的;它们专为您需要非常精确的尺寸并希望在您违反尺寸要求时收到警告而设计。
标签: ios json types swift4 xcode9