2012-04-09 15 views
5

Mam wymóg, w przypadku gdy mam wideo odtwarzane przy użyciu MPMediaPlayerController. Wraz z wideo mam dwa przyciski, w których muszę przechwycić bieżący czas odtwarzania po kliknięciu przycisku i zapisać wszystkie odpowiednie kliknięcia indywidualnie. Jestem w stanie uzyskać bieżący czas odtwarzania wideo za pomocą właściwości "currentPlaybackTime", która zwraca NSTimeInterval. Ale czy ktoś może mi pomóc w przechowywaniu wszystkich wartości NSTimeInterval w NSMutableDictionary. Próbowałem z następujących sposobów:Jak zapisywać wartości NSTimeInterval w obiekcie NSMutableArray?

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

Ale za każdym razem po kliknięciu przycisku dobry jestem coraz liczyć Array jak tylko 1. Czy ktoś mógłby rzucić światło na to, gdzie jestem nie tak?

+3

Czy tworzysz nową tablicę po każdym naciśnięciu przycisku? – meggar

+0

Naprawiłem błąd .. –

Odpowiedz

3

Ale za każdym razem po kliknięciu przycisku dobrej Dostaję liczyć Array jak tylko 1.

Nie jest to zaskakujące, biorąc pod uwagę, że tworzysz nowy NSMutableArray na poprzedniej linii.

Aby rozwiązać ten problem, trzeba dokonać NSMutableArray *arrayContainsGoodClicksinstancja zmiennej (AKA Ivar), zainicjować go [NSMutableArray array] w wyznaczonym inicjatora, a następnie użyj

[arrayContainsGoodClicks addObject:goodTimeIntervals]; 

aby dodać obiekty do tablicy.

Jeśli zamiast tego chcesz użyć NSMutableDictionary, strategia będzie identyczna, z tą różnicą, że musisz zdecydować, który obiekt chcesz użyć jako unikatowy klucz do swojego NSDictionary. Pamiętaj też, że nie zamówiono NSMutableDictionary, więc możesz zająć się sortowaniem za każdym razem, gdy wyświetlasz elementy słownika użytkownikom.

+0

Wielkie dzięki. Niektóre z nich wypróbowałem sam i zaskakująco to samo zasugerowałem. Czuję się świetnie, że byłem na dobrej drodze .. [arrayContainsGoodClicks addObject: goodTimeIntervals]; NSLog (@ "Całkowita liczba tablic to:% i", [tablicaContainsGoodClicks count]); to coś poradziło .. –

1

Musisz utworzyć arrayContainsGoodClicks tylko raz (w metodzie init, na przykład), a następnie dodać wartość do tej tablicy w przycisk obsługi:

//.h 
NSMutableArray *arrayContainsGoodClicks; 

//.m - init 
arrayContainsGoodClicks = [NSMutableArray array]; 

//.m - button handler 
[arrayContainsGoodClicks addObject:goodTimeIntervals]; 
+0

Ya to. Dzięki za pomoc ... –

1

Musisz utworzyć tablicę i zapisać go jako ivar.

@property (retain, nonatomic) NSMutableArray *clicksArray; 
... 
@synthesize clicksArray; 

Teraz w swojej metodzie -init stworzyć tablicę jak ..

self.clicksArray = [NSMutableArray array]; 

I dodać obiekt do tablicy za każdym razem, więc -onClickOfGood stałoby się coś podobnego ...

... 
[self.clicksArray addObject: goodTimeIntervals]; 
NSLog(@"The total count of Array is: %i",[self.clicksArray count]); 
+0

Ya ya .. no to .. Dzięki za pomoc .. –

Powiązane problemy