gpt4 book ai didi

ios - 在不使用 TableView 的情况下更新核心数据属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:28:55 24 4
gpt4 key购买 nike

我有一个 POS 类型的应用程序,它使用 Core Data 通过表格 View 来存储日常销售交易。我试图在不使用表格 View 的情况下检索和更新某些核心日期属性,例如每日销售量。 TableView 使用索引路径处的行来指向正确的对象(行)。我正在使用带谓词的 Fetched Results Controller 来检索已提取的对象(行) 问题:如何获取已提取行的索引以便我可以检索并更新正确的属性值?所有书籍和示例都使用 TableView 来更改属性。

Entity Product
Product *product;
______________________________

[self setupFetchedResultsController]; (This returns one object)

product = [NSFetchedResultsController objectAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; (objectAtIndexPath - Errors of course)

最佳答案

我认为在这种情况下你不应该使用 NSFetchedResultsController。如果您不想在 UITableViewUICollectionView 中使用它,最好不要使用它。您可能最好使用 NSFetchRequest,它很容易设置:

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Entity"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"someValue=1"];
fetchRequest.predicate = predicate;
NSError *error = nil;
NSArray *array = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

现在您有了一个包含所有结果的 NSArray,您可以使用它而无需处理索引路径。

如果您仍在为表使用 NSFetchedResultController(我不确定您是否这样做),那么只要您进行更改,这些行仍会更新。

更新:要更新获取返回的对象之一,可以这样做:

Entity *entity = [array firstObject];
[entity setSomeProperty:@"CoreDataIsAwesome"];

NSError *error = nil;
if ([self.managedObjectContext save:&error]) {
NSLog(@"Entity updated!");
} else {
NSLog(@"Something went wrong: %@", error);
}

关于ios - 在不使用 TableView 的情况下更新核心数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21165534/

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