Я создаю приложение, которое мне нужно сравнить, если час между официальным и последним часом, который я сохраняю как секунды в CoreData с типом Integer64. Для сравнения этого часа я использую filteredArrayUsingPredicate с этим предикатом:filterArrayUsingPredicate ничего не возвращает
NSMutableArray *allDiscounts = (NSMutableArray *)[[DataStack defaultStack] fetchAllDiscounts];
NSMutableArray *hoursResults = [[NSMutableArray alloc] init];
NSNumber *timeInSeconds = [[DataStack defaultStack] stringToSeconds:string];
NSLog(@"allDiscounts count: %lu",(unsigned long)[allDiscounts count]);
NSLog(@"inicial time; %@",[[allDiscounts objectAtIndex:0] inicialTime]);
NSLog(@"final time; %@",[[allDiscounts objectAtIndex:0] finalTime]);
NSLog(@"time in seconds: %d", [timeInSeconds intValue]);
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"inicialTime <= %@ AND %@ <= finalTime",timeInSeconds,timeInSeconds];
[hoursResults addObjectsFromArray:[allDiscounts filteredArrayUsingPredicate:predicate]];
NSLog(@"hoursResults count: %lu", (unsigned long)[discountResults count]);
и добавления результата к другому NSMutableArray, но я всегда получаю 0 с результатом.
это журнал, который я получаю:
2015-03-15 16:05:09.883 Vanttage[9342:662093] allDiscounts count: 87
2015-03-15 16:05:09.883 Vanttage[9342:662093] inicial time; 68400
2015-03-15 16:05:09.883 Vanttage[9342:662093] final time; 82800
2015-03-15 16:05:09.884 Vanttage[9342:662093] time in seconds: 72000
2015-03-15 16:05:09.885 Vanttage[9342:662093] hoursResults count: 0
Что я делаю неправильно? Надеюсь, ты поможешь мне. Спасибо.
Я попробовал то, что вы сказали, но до сих пор не работает. –
Установите точку останова на линии. Какой тип timeInSeconds и какова его ценность? –
Кроме того, когда вы помещаете точку останова в, что содержит allDiscounts? –