iphone - 如何重置核心数据中的主键计数/最大值?

标签 iphone objective-c cocoa core-data

我已经设法删除了使用 Core Data 存储的所有实体(在 this answer 之后)。

问题是,我注意到主键仍在向上计数。有没有办法(无需手动编写 SQL 查询)重置实体的 Z_MAX 值?下面的屏幕截图阐明了我的意思。

值本身不是问题,但我只是担心在未来的某个时候可能会达到最大整数,我不希望这种情况发生。我的应用程序与 Web 服务同步数据并使用核心数据缓存它,因此主键可能一次增加数百/数千。删除整个 Sqlite 数据库不是一种选择,因为我需要为其他实体保留一些信息。

我看过“重置”方法,但肯定会重置整个 Sqlite 数据库吗?如何仅为这组实体重置主键?与我要重置的主键的其他实体没有任何关系。

Screenshot

最佳答案

I'm just concerned that at some point in the future the maximum integer may be reached and I don't want this to happen.

真的吗?您的主键是什么类型?因为如果它不是 Int16 以外的任何东西,你真的不需要关心它。一个带符号的 32 位整数为您提供 2,147,483,647 个值。一个 64 位有符号整数为您提供 9,223,372,036,854,775,807 个值。

如果您认为您将用完所有这些,那么您可能需要担心比整数溢出更重要的事情。

更重要的是,如果您使用的是 Core Data,则不需要关心或真正使用主键。 Core Data 不是数据库——在使用 Core Data 时,您应该使用关系而不是真正关心主键。 Core Data 并不真正需要它们。

关于iphone - 如何重置核心数据中的主键计数/最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663252/

相关文章:

iphone - 如何在 iPhone 上打开加密的 SQLITE 数据库?

ios - 如何频繁更新observeValueForKeyPath的数据?

objective-c - 将 NSView 实例保存在数组中

xcode - 符号化崩溃日志 - Xcode 8/macOS 应用程序

ios - 解析 JSON 数据

iOS 应用程序 View 在模拟器上看起来与 XIB 文件不同

objective-c - 如何在 iCloud 中保存 NSData

ios - 如何在 iOS 和 Mac OS X 上查找接口(interface)的硬件类型?

ios - AVPlayer 不同步

php - 如何格式化 PHP 中的列表以用作 Objective C 中的 NSArray?