2012-04-09 7 views
-1

Ich habe zwei NSMutableArrays (ArrayContainsGoodClicks und ArrayContainsBadClicks). Ich initialisiere diese Arrays mit einigen NSTimeInterval-Werten, wenn die entsprechenden Good- und Bad-Buttons geklickt werden. Jetzt ist meine Anforderung, ich erhalte Antworten von einem Webservice-Aufruf mit einigen TimeIntervals. Jetzt möchte ich die NSTimeInterval-Werte, die ich von den Webservice-Antworten bekomme, mit den Werten vergleichen, die ich in den beiden Arrays gespeichert habe. Hier finden Sie den Code.Wie vergleicht man die NSTimeInterval (NSNumber Objects) in einem 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" 

Ich bekomme die Antwort im oben genannten Format. Ich analysiere meine Datei und speichere die relevanten Details von NSTimeInterval-Werten. Jetzt möchte ich die Zeitintervalle zwischen 71 und 73 Sekunden (74 und 77, 78 und 83) vergleichen. Ich habe meine Arrays, die alle timeInterval-Werte enthält, bei denen der Benutzer auf die Schaltflächen Gut und Schlecht geklickt hat.

-(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);} 

Meine Arrays enthält die folgenden Beispiel Details ...

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" 

)

Kann mir bitte jemand helfen, wie die NSTimeIntervals vergleichen in meinem Arrays und die empfangenen Antworten?

Antwort

3

Scheint ziemlich trivial, wenn Sie die Daten im richtigen Format haben. NSTimeInterval ist ein typedef double so können Sie Vergleiche Basisoperatoren

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

Vielen Dank @amleszk mit tun. –

+0

Aber das Problem hier ist ... jedes Mal, wenn die Schaltfläche im richtigen Zeitintervall angeklickt wird, wird das Array mit dem gleichen Objekt hinzugefügt. Ich füge das Objekt nach der if-Bedingung auf diese Weise hinzu. If (clickTimeInterval> 71.0 && clickTimeInterval <73.0) { NSNumber * filteredGoodTimeIntervals = [NSNummer numberWithDouble: clickTimeInterval]; [filteredArrayContainsGoodClicks addObject: filteredGoodTimeIntervals]; NSLog (@ "Das gefilterte Array mit guten Klicks sind:% @", filteredArrayContainsGoodClicks); } Können Sie bitte überprüfen, ob ich falsch liege? –

+0

Hallo @ Amleszk. Kannst du mir bitte erklären was für (NSNumber * click in arrayContainsGoodClicks) bedeutet? Nach was wird es suchen? –

Verwandte Themen