gpt4 book ai didi

ios - 如何在 Core Data 对象中存储 Twitter ID

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:45 25 4
gpt4 key购买 nike

知道在 Core Data 字段中存储 Twitter 的推文 ID(以及一般的其他 Twitter 数据项 ID)的最佳方式是什么吗?这是为了在本地缓存推文(和其他 Twitter 数据),并将用作将本地数据与服务器端数据链接起来的主要唯一 ID。也就是说,API 返回的任何新 ID 值都将在本地创建一条记录,而如果本地数据存储中已有 ID,则其余数据将从 Twitter API 返回的任何内容进行更新。所以会在这个字段上完成很多提取。

这是给 Core Data 的用于 Mac OS X/iOS 的库和使用的底层持久存储是 SQLite。

如您所知,目前 Twitter defines message IDs as 64-bit unsigned integers .基于此,我可以想到这些选项在本地存储 Twitter ID:

  1. 作为 64 位有符号整数(Core Data 没有无符号整数类型)
  2. 作为一个字符串
  3. 作为小数

选项 (1) 有两个我可以预见的危险:

  • 整数溢出(符号溢出),主要是在解析 ID 的字符串表示时。
  • 如果 Twitter 溢出 64 位并扩大其 ID 值范围怎么办?

选项 (2) 可能效率较低,因为该字段经常用于提取。

选项 (3) 可能不会比选项 (2) 更有效,因为 SQLite 3 does not have a native variable-length number type .

理想的选择可能是将其存储为 128 位无符号整数,这使得它们与 UUID 一样唯一,并且不会像字符串那么大。但不幸的是,SQLite 中没有 128 位无符号整数类型,并且在使用该字段作为获取键时,底层持久存储本身不支持的任何内容都可能导致问题。

提前致谢。

最佳答案

不会有从 64 位到 128 位的切换(至少不是出于地址空间等任何充分的理由),即使它已签名,它仍然留给您 63 位,跨越大约 9,000,000,000,000,000,000 条推文。 Twitter 每天收到 2 亿条推文。即使他们每天有 1 万亿条推文,也需要 900 万天才能溢出。因此,在这方面使用 64 位肯定是安全的。

关于ios - 如何在 Core Data 对象中存储 Twitter ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8411847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com