2015-03-15 6 views
0

Я создаю приложение, которое мне нужно сравнить, если час между официальным и последним часом, который я сохраняю как секунды в 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 

Что я делаю неправильно? Надеюсь, ты поможешь мне. Спасибо.

ответ

0

Попробуйте NSPredicate *predicate = [NSPredicate predicateWithFormat:@"inicialTime <= %d AND %d <= finalTime",[timeInSeconds intValue],[timeInSeconds intValue]]; предполагающие TimeInSeconds является NSNumber

+0

Я попробовал то, что вы сказали, но до сих пор не работает. –

+0

Установите точку останова на линии. Какой тип timeInSeconds и какова его ценность? –

+0

Кроме того, когда вы помещаете точку останова в, что содержит allDiscounts? –

Смежные вопросы