gpt4 book ai didi

ios - 使用 NSPredicate 过滤对象和键(需要拆分)

转载 作者:行者123 更新时间:2023-11-28 19:09:25 25 4
gpt4 key购买 nike

我设置了以下字典(对象,键)

0, "10;0.75,0.75"
1, "0;2.25,2.25"
3, "1;3.5,2.0"
4, "1;4.5,3.0"
5, "2;6.0,5,0"

我要过滤的内容将基于对象和键。该对象是一个 NSNumber。关键是一个字符串,但我真的不想要整个字符串。我想拆分由分号分隔的字符串并获取拆分的第一个索引,这将根据我要查找的对象生成字符串 10、0、1、1 或 2。

作为一个具体的例子:

是否有任何键等于@“1”且对象大于3。

在这种情况下,我应该期望返回 YES,因为对象 4 在我进行拆分后有一个等于 @"1"的键。

我想我正在寻找一种聪明的方法来定义 NSPredicate 以对由分号分隔的键进行拆分,然后基于它进行过滤(比较等)。如果您有任何问题或需要其他信息,请告诉我。

最佳答案

我能想到的一个非常幼稚的实现

- (BOOL)hasKey:(NSString *)key withValueGreaterThan:(id)object{

NSDictionary *dictionary = @{@"10;0.75,0.75": @0,
@"0;2.25,2.25" : @1,
@"1;3.5,2.0" : @3,
@"1;4.5,3.0" : @4,
@"2;6.0,5,0" : @5};


NSPredicate *keyPredicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH %@",key];

NSArray *filteredKeys = [[dictionary allKeys]filteredArrayUsingPredicate:keyPredicate];

for (NSString *k in filteredKeys) {

NSNumber *value = dictionary[k];
if (value>object) {
return YES;
}
}

return NO;
}

使用

BOOL hasValue = [self hasKey:@"1;" withValueGreaterThan:@3];

关于ios - 使用 NSPredicate 过滤对象和键(需要拆分),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17102298/

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