gpt4 book ai didi

iphone - CoreData 无法解决从 xml feed 检索数据并使用托管对象进行操作的错误

转载 作者:行者123 更新时间:2023-11-29 04:33:50 27 4
gpt4 key购买 nike

我遇到错误 - CoreDate 无法完成从...检索数据的错误。应用程序在 Item *currentItem = (Item *)[self.fetchedObjectsArray objectAtIndex:currentItemIndex] 之后立即崩溃下面的代码。然而,它确实显示了一些提要,然后崩溃了。重现该错误也很困难,即使它确实被重现,它也会在收到不同数量的提要后崩溃。有人知道我将如何调试这样的问题吗?

- (void) showNextFeed {
if ([self.fetchedObjectsArray count] <= 0)
return;
if (feedAnimating)
return;

feedAnimating = YES;

//start off the left of the screen
self.newsTitleView.center = CGPointMake(-self.newsTitleView.frame.size.width * 0.5, self.newsTitleView.center.y);

//start off the right of the screen
self.newsItemTitleLabel.center = CGPointMake(self.view.frame.size.width + self.newsItemTitleLabel.frame.size.width * 0.5, self.newsItemTitleLabel.center.y);

//update the content
currentItemIndex = (currentItemIndex + 1 < [self.fetchedObjectsArray count]) ? (currentItemIndex + 1) : 0;
Item *currentItem = (Item*)[self.fetchedObjectsArray objectAtIndex:currentItemIndex];
self.newsTitleView.backgroundColor = [UIColor colorWithHexString:currentItem.belongsTo.color];
self.newsFeedTitleLabel.text = currentItem.belongsTo.feedTitle;
self.newsItemTitleLabel.text = currentItem.itemTitle;

最佳答案

您首先应该确保 currentItemIndex (我认为是一个 ivar 类)已正确初始化。也许值得检查一下它在哪里被操纵。

对于 fetchedObjectsArray 也是如此。它还在哪里进行了更改?更改和您的方法是否会相互干扰?

事实上,该错误表明核心数据中的某个项目已被删除或更改,而 View 仍然需要它(就像您的 up showNextFeed 方法中的情况)。

最后,您是否考虑过使用NSFetchedResultsController?这样,线程和错误检查就容易得多,您可以将大部分棘手的持久存储更新和获取保留到核心数据,而不是维护自己的结果数组。 (你已经有很多代码只是为了检查你是否超出范围......)

关于iphone - CoreData 无法解决从 xml feed 检索数据并使用托管对象进行操作的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11327098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com