Core Data是否对字符串的长度施加限制?

时间:2012-04-26 01:50:20

标签: objective-c ios core-data nsstring

我想知道在iOS中使用Core Data存储的字符串长度是否有任何限制。 (除设备上的可用RAM或磁盘空间外)

4 个答案:

答案 0 :(得分:8)

我认为在您达到Core Data中的任何存储限制之前,您更有可能达到iOS设备的性能限制。您还可以通过提取大量数据来获得性能提升。

在性能和可管理性方面你都会变得更好,将大块文本分成更小的块。

我记得Marcus Zarra告诉我的事情。

答案 1 :(得分:4)

要确认,CoreData中没有特定限制(不计算内存/磁盘空间限制)。在iOS上使用CoreData时,几乎在每种情况下都使用sqlite作为持久存储。 CoreData将String存储为Varchar,并从sqlite的角度出发:

SQLite不会强制使用VARCHAR的长度。你可以声明一个VARCHAR(10),SQLite很乐意在那里存储一个5亿字符串。它将保持所有5亿个字符完好无损。您的内容永远不会被截断。无论N的值如何,SQLite都将“VARCHAR(N)”的列类型理解为与“TEXT”相同。

......取自sqlite's FAQ

答案 2 :(得分:3)

据我所知,它没有限制,除非你在模型文件中指定一个(有一个最小长度和最大长度的部分)。

答案 3 :(得分:1)

我不记得在核心数据文档中读取任何限制,但请记住,Core Data只是一个真正数据库之上的框架,通常是sqlite。我认为可以安全地假设限制是由底层数据库决定的。