2012-04-09 4 views
-1

У меня есть два NSMutableArrays (arrayContainsGoodClicks и arrayContainsBadClicks). Я инициализирую эти массивы с некоторыми значениями NSTimeInterval, когда соответствующие кнопки «Хорошие и плохие» выделены. Теперь мое требование: я получаю ответы от вызова webservice с некоторыми TimeIntervals. Теперь я хочу сравнить значения NSTimeInterval, которые я получаю из ответов Webservice, со значениями, которые я сохранил в двух массивах. Ниже приведен код.Как сравнить NSTimeInterval (объекты NSNumber) внутри NSMutableArray?

question answer="t" qno="1" tin="71" title="Greet" tout="73" 
question answer="t" qno="2" tin="74" title="Have Name Tag" tout="77 
question answer="t" qno="3" tin="78" title="Greet" tout="83" 

Я получаю ответ в вышеупомянутом формате. Я разбираю файл и сохраняю соответствующие данные NSTimeInterval Values. Теперь я хочу сравнить timeIntervals между 71 и 73 секундами (74 и 77,78 и 83 соответственно). У меня есть мои массивы, которые содержат все timeInterval значения, по которым пользователь нажал кнопки «Хорошие и плохие».

-(void)onClickOfGood{ 
//NSLog(@"The current playback time in good:%g",moviePlayerController.currentPlaybackTime); 
currentPlaybackTime = moviePlayerController.currentPlaybackTime; 
NSNumber *goodTimeIntervals = [NSNumber numberWithDouble:currentPlaybackTime]; 
[arrayContainsGoodClicks addObject:goodTimeIntervals]; 
NSLog(@"The total count of Array is: %i",[arrayContainsGoodClicks count]); 
NSLog(@"The Array contains : %@",arrayContainsGoodClicks);} 

-(void)onClickOfBad{ 
NSLog(@"The current playback time in bad: %g",moviePlayerController.currentPlaybackTime); 
currentPlaybackTime = moviePlayerController.currentPlaybackTime; 
NSNumber *goodTimeIntervals = [NSNumber numberWithDouble:currentPlaybackTime]; 
[arrayContainsBadClicks addObject:goodTimeIntervals]; 
NSLog(@"The total count of Array is: %i",[arrayContainsBadClicks count]); 
NSLog(@"The Array contains Bad Clicks are: %@",arrayContainsBadClicks);} 

Мои массивы содержит следующие образцы деталей ...

The Array containing Good Clicks are : (
"2.065027933", 
"3.153256308", 
"4.216946226", 
"4.94465584", 
"5.688772132", 
"6.48904879", 
"7.256447126", 
"8.000711516000001", 
"8.760312588", 
"9.537493762", 
"10.45637486", 
"11.153212146", 
"11.880587144", 
"12.672884372", 
"13.52852395" 

)

The Array containing Bad Clicks are: (
"2.70485684", 
"3.713548251", 
"4.593316639", 
"5.353822771", 
"6.049754725", 
"6.930190204", 
"7.592959653", 
"8.353438538000001", 
"9.074305708000001", 
"9.905327347", 
"10.809726701", 
"11.448938757", 
"12.321753456", 
"14.106061449" 

)

Может кто-то пожалуйста, помогите мне о том, как сравнить NSTimeIntervals в моем массивов и полученных ответов?

ответ

3

Кажется довольно тривиальным, если у вас есть данные в правильном формате. NSTimeInterval является typedef double, так что вы можете сделать сравнения с использованием основных операторов

for(NSNumber* click in arrayContainsGoodClicks) { 
    NSTimeInterval clickTimeInterval = [click doubleValue];  
    if(clickTimeInterval > 71.0 && clickTimeInterval < 73.0) { 
     ... 
    } 
} 
+0

Большое спасибо @amleszk. –

+0

Но проблема здесь ... каждый раз, когда кнопка нажимается на нужный временной интервал, массив добавляется к одному и тому же объекту. Я добавляю объект после проверки условия if. If (clickTimeInterval> 71.0 && clickTimeInterval <73.0) { NSNumber * filterGoodTimeIntervals = [номер NSNumberWithDouble: clickTimeInterval]; [filterArrayContainsGoodClicks addObject: filtGoodTimeIntervals]; NSLog (@ "Фильтрованный массив, содержащий хорошие клики:% @", filtersArrayContainsGoodClicks); } Можете ли вы проверить, не ошибаюсь ли я? –

+0

Привет @amleszk. Можете ли вы, пожалуйста, объяснить мне, что (NSNumber * click в arrayContainsGoodClicks) означает? Что он будет проверять? –

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