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