gpt4 book ai didi

iphone - 向现有 NSPredicate 添加附加参数

转载 作者:行者123 更新时间:2023-12-03 18:25:22 25 4
gpt4 key购买 nike

是否可以采用现有的 NSPredicate 并向其添加附加参数?

在我的一个 TableView 中,我传入一个 NSPredicate 以用于我的 NSFetchedResultsController,如下所示:

[fetchedResults setPredicate:self.predicate];

这工作得很好,并将根据现有的 NSPredicate 显示内容。但我想更进一步,向 tableView 添加 UISegmentedControl。

- (IBAction)segmentChange:(id)sender {
switch (selectedSegment) {
case kDisplayDVD:
// Add argument to existing NSPredicate
break;
case kDisplayVHS:
// Add argument to existing NSPredicate
break;
default:
break;
}

根据用户选择的段,我想向现有的 NSPredicate 添加一个参数。这有可能吗?

最佳答案

当然!

假设您的对象有一个名为 display 的属性,它是一个 int(或者更确切地说,是一个与您的 kDisplayDVDkDisplayVHS 相对应的枚举) , ETC)。然后你可以这样做:

- (IBAction) segmentChange:(id)sender {
NSPredicate * newCondition = [NSPredicate predicateWithFormat:@"display = %d", selectedSegment];
NSPredicate * newPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:[NSArray arrayWithObjects:[self predicate], newCondition, nil]];
[self setPredicate:newPredicate];
}

因此,如果 [self predicate](foo = @"bar"OR baz > 42),您的新谓词将为 display = 1 AND ( foo = @“bar”或 baz > 42)

关于iphone - 向现有 NSPredicate 添加附加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476026/

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