gpt4 book ai didi

ios - 如何找到 ARRAY 的索引位置,其中 NSPredicate 选取值。我使用 filteredArrayUsingPredicate 作为过滤器

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

这里是一个例子,根据当前时间过滤具有开始时间和结束时间的数组。这工作正常:

问题:但在这里我想知道谓词选取值的 collectionArr 的索引位置。

NSDate* currentDate = [NSDate date];
NSDateFormatter *_formatter = [[[NSDateFormatter alloc] init] autorelease];
[_formatter setLocale:[NSLocale currentLocale]];
[_formatter setDateFormat:@"yyyy-MM-dd hh:mm a"];

NSString *_date=[_formatter stringFromDate:currentDate];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"StartDate <= %@ AND EndDate = %@", _date, _date];
if (shortPrograms.count > 0) {
[shortPrograms removeAllObjects];
}

//collectionArr have multiple dictionaries ,which has start date and end date.
//collectionArr = [[NSArray alloc] initWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"..Sdate..",@"Startdate",@"..Edate..",@"Enddate", nil], nil];
//shortPrograms is a filter are, having the date in between start date and end date.

[shortPrograms addObjectsFromArray:[collectionArr filteredArrayUsingPredicate:predicate]];

最佳答案

您的 shortPrograms 数组包含来自 collectionArr 的对象子集。听起来您想从 shortPrograms 获取对象并确定它在 collectionArr 中的位置。

一般来说你不能。但如果 collectionArr 中的所有对象都是唯一的,那么这是可能的。

id someObject = shortPrograms[someIndex]; // get some value
NSUInteger originalIndex = [collectionArr indexOfObject:someObject];

如果您在 collectionArr 中的对象不是唯一的,那么这将不起作用,因为无法知道您正在处理哪些重复对象。

关于ios - 如何找到 ARRAY 的索引位置,其中 NSPredicate 选取值。我使用 filteredArrayUsingPredicate 作为过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15667615/

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