首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSFetchResultsController iOS4

NSFetchResultsController iOS4
EN

Stack Overflow用户
提问于 2010-07-05 20:35:47
回答 2查看 457关注 0票数 0

我只是在升级到ios4后才在我的应用程序中收到这个错误。

代码语言:javascript
复制
newsDetailController.news = (News *)[self.fetchedResultsController objectAtIndexPath:indexPath];
NSLog(@"\n Indexpath of details news before pass = %@", [self.fetchedResultsController indexPathForObject:newsDetailController.news]);

基本上,这是:

代码语言:javascript
复制
[self.fetchedResultsController indexPathForObject:newsDetailController.news])

返回NULL

为什么会这样呢?

newsDetailController.news不是NULL

编辑:

要突出这一点,请执行以下操作:

代码语言:javascript
复制
NSLog(@"\n Indexpath of detailssss news before pass = %@", [self.fetchedResultsController indexPathForObject:[self.fetchedResultsController objectAtIndexPath:indexPath]]);

..。返回NULL,即使:

代码语言:javascript
复制
[self.fetchedResultsController objectAtIndexPath:indexPath]

...returns一个对象。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-06 07:04:36

你确定新闻属性(我猜它是你的细节视图控制器上的一个属性)不是nil吗?您是否确认了newsDetailControllernewsDetailController.news都不是nil的假设

iOS4带来了适当的非脆弱iVars。如果在“成功”之前,你在@property声明中做了一些不正确的事情,那么对iOS4的更改现在可能会捕捉到这个错误。

第一步,在调试器中遍历代码,并确保所有内容都具有您期望的值。

票数 2
EN

Stack Overflow用户

发布于 2010-07-06 02:56:54

通常,当获取的结果控制器的索引出现问题时,这是因为节信息犯了错误,例如,在没有节的情况下添加节键。在解决问题之前,您也不应该使用缓存。

在这种情况下,您还需要确保news是一个表示完整实体的对象。如果您使用keypath作为在indexpath处返回的对象,那么它必须是关系另一端的对象,而不能是保存属性数据的对象(如NSString)。

如果news是一个关系,则FRC遍历对象图并返回indexPath。但是,如果news只是一个属性,那么它就没有indexPath,因为indexPaths只描述到对象图中实体的路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3179472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档