gpt4 book ai didi

objective-c - 简单 NSPredicate @"1 == 0"不过滤获取的结果?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:49:11 25 4
gpt4 key购买 nike

这段代码有什么问题?

我知道这是一个愚蠢的谓词。但这只是为了表明如果这有效,它应该过滤掉所有内容,对吧?

不知何故,它不是。我在我的数据库中得到了每个月的对象,而我本不该得到任何对象。

我想这告诉我问题可能不在谓词中?

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Month" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

[fetchRequest setPredicate: [NSPredicate predicateWithFormat:@"1 == 0"]];

NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"month_" ascending:YES];

NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setFetchBatchSize:20];

NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:@"month_"
cacheName:@"Root"];



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [[_fetchedResultsController sections] count];
}

我真正想做的是,

[NSPredicate predicateWithFormat:@"year.year_ == %d", year]

我也试过了,

[NSPredicate predicateWithFormat:@"month_ == %d", 1]

只是看看它是否有效。但是什么都没有。

编辑:

此时,无论我设置什么谓词,只要它是有效的、格式良好的谓词即可。它不提示,让我所有的对象。它只是不过滤任何东西。

我几乎都在使用 Apple 文档中的样板代码。

谁能帮我解决这个问题?

谢谢!

最佳答案

如果使用缓存,则在重新使用之前应删除 fetchRequest 的缓存。

调用 deleteCacheWithName: 解决了问题。

关于objective-c - 简单 NSPredicate @"1 == 0"不过滤获取的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12226685/

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