iPhone 上 Core-Data 中的字符串被截断

Posted

技术标签:

【中文标题】iPhone 上 Core-Data 中的字符串被截断【英文标题】:String truncated in Core-Data on iPhone 【发布时间】:2010-02-11 10:10:37 【问题描述】:

我有一个实体(文章),其类在 xcdatamodel 中定义。 在这个类中,我定义了一个 String NSString *test;

currentArticle.test = string;

字符串长度超过 50 个字符。

但是当我尝试使用以下方式获取存储对象时:

Article *article = [fetchedResultsController objectAtIndexPath:indexPath];

然后 article.test 被截断(50 个字符长)。不过应该会更长……

有什么想法吗?

【问题讨论】:

你能发布你的数据模型吗?或者详细说明一下? 你是如何确定字符串被截断的? 哪个NSLog和调试 【参考方案1】:

我刚刚也注意到了。

据我所知,在记录 NSManaged 对象(或核心数据错误)时,只会打印字符串属性的前 50 个左右的字符。但是实际的属性还是有所有的字符。

【讨论】:

是对的。此外,您可以“p entity.field!”如果它超过 lldb 字符串长度,并且“p entity.field!.count 按预期工作”,它会打印更多,通常使用 ... 【参考方案2】:

我猜你尝试加载到 TableView,默认情况下它会被截断以适应表格视图的屏幕宽度。

在访问文章的行上放置一个断点并查看它的值。

否则,您可能需要将其打印到控制台

NSLog(@"my article test string is: %@", article.test);

已编辑:

另一个注意事项是您的数据模型可能会将“最大长度”属性固定为 50。

【讨论】:

在 NSLog 上也没有字符串被截断 您能否用更多代码编辑您的问题,至少在设置字符串变量的部分和获取变量值的部分,或者向我们展示您的文章模型。

以上是关于iPhone 上 Core-Data 中的字符串被截断的主要内容,如果未能解决你的问题,请参考以下文章

使用 xcode 和 core-data 中的代码创建托管对象

在同一个数据库上同时使用 core-data 和基于 sqlite c 的 api

.net core 基于Dapper 的分库分表开源框架(core-data)

IOS/Core-Data:添加多对多关系

Core-Data 后台保存性能问题

.net core 基于Dapper 的分库分表开源框架(core-data)