gpt4 book ai didi

objective-c - iOS - 如何刷新/更新核心数据 transient 属性?

转载 作者:可可西里 更新时间:2023-11-01 04:22:44 25 4
gpt4 key购买 nike

我正在使用一个核心数据 NSFetchedResultsController UITableView,它带有一个 transient NSDate 属性。我将其作为临时属性的主要原因是我的 UITableView 条目基于 NSDate 被放入部分,但可以在日期更改时在部分之间移动。

到目前为止它似乎工作得很好,但它只会在我关闭应用程序时更新/刷新(我对此很陌生,所以我不知道我是否使用了正确的术语,抱歉!)并从多任务中杀死它,或者通过 Xcode 重新运行它。如果我不这样做,这些项目就不会改变,也不会被放入正确的部分。有没有办法手动让它刷新,这样用户就不需要这样做来让它正常运行?

谢谢!

最佳答案

首先,确保在创建抓取结果 Controller 时仅将 transient 属性用于 sectionNameKeyPath。最好将它命名为 sectionIdentifier(就像 Apple 在其示例代码中所做的那样。)实际日期应该是您的实体的一个单独属性。 (我将其称为 dateAttribute

其次,确保您在 Entity.m 文件中指定关键路径依赖项:

+ (NSSet *)keyPathsForValuesAffectingSectionIdentifier {
// If the value of dateAttribute changes, the section identifier may change as well.
return [NSSet setWithObject:@"dateAttribute"];
}

第三,确保在您的 Controller 中,您通过以下方式对托管对象上下文中的更改做出适当的 react

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
{
if (!self.tableView.editing) [self.tableView reloadData];
// the quick and dirty method without animations;
// see referenced code for a more pleasant approach
}

如果有任何不清楚的地方,请查看 Apple 示例 DateSectionTitles .

关于objective-c - iOS - 如何刷新/更新核心数据 transient 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11811996/

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