У меня есть массив словарей в следующем форматеКак получить последний элемент из NSMutableArray, в котором статус завершен?
[
{
"status":"not completed",
"rating":2
},{
"status":"completed",
"rating":2
},{
"status":"not completed",
"rating":"<null>"
},{
"status":"completed",
"rating":"<null>"},{
"status":"not completed",
"rating":"<null>"
}
]
и от этого я хочу ответ, как последний объект, где статус завершения и оценка равна нулю
output
{
"status":"completed",
"rating":"<null>"
}
как я получаю второй элемент легко и без любая большая итерация.
В этом случае этот массив может содержать 150-300 элементов.
-(void)checkRecentUnratedOrder:(NSMutableArray *)order{
NSLog(@"trip log - %@",[order valueForKey:@"status"]); // total 5 objects inside array in that 4 of them are completed
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self.status == completed"];
NSArray *arr = [order filteredArrayUsingPredicate:predicate];
NSLog(@"trip arr%@",arr);
}
Начало в конце массива и перебирать в обратном направлении. Как только вы найдете элемент со статусом «завершен», верните его. – smarx