2012-04-09 1 views
5

У меня есть требование, когда у меня есть видео, которое воспроизводится с помощью MPMediaPlayerController. Наряду с видео у меня есть две кнопки, где мне нужно фиксировать текущее время воспроизведения, когда нажимается кнопка и сохраняются все соответствующие клики по отдельности. Я могу получить текущее время воспроизведения видео, используя свойство currentPlaybackTime, которое возвращает NSTimeInterval. Но может ли кто-нибудь помочь мне в том, как хранить все значения NSTimeInterval в NSMutableDictionary. Я попытался следующие способы:Как хранить значения NSTimeInterval в 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]);} 

Но каждый раз после щелчка хорошей кнопки я получаю посчитать массив, как только 1. Может ли кто-нибудь, пожалуйста, пролить свет на том, где я буду неправильно?

+3

Вы создаете новый массив каждый раз при нажатии кнопки? – meggar

+0

Я исправил ошибку. –

ответ

3

Но каждый раз после щелчка хорошей кнопки я получаю подсчитывать массив как только 1.

Это не удивительно, учитывая, что вы создаете совершенно новый NSMutableArray на предыдущей строке.

Чтобы это исправить, вам нужно сделать NSMutableArray *arrayContainsGoodClicksэкземпляр переменной (AKA Ивар), инициализировать его [NSMutableArray array] в вашем обозначенном инициализаторе, а затем использовать

[arrayContainsGoodClicks addObject:goodTimeIntervals]; 

для добавления объектов в массив.

Если вы хотите использовать NSMutableDictionary, стратегия будет идентичной, за исключением того, что вам нужно будет выбрать объект, который вы хотели бы использовать в качестве уникальных ключей для вашего NSDictionary. Также помните, что NSMutableDictionary не заказан, поэтому вам может потребоваться сортировка при каждом отображении ваших позиций словаря пользователям.

+0

Большое спасибо. Я так и попробовал себя, и на удивление это было так же предложено. Очень приятно, что я был на правильном пути. [ArrayContainsGoodClicks addObject: goodTimeIntervals]; NSLog (@ "Общее количество массивов:% i", [arrayContainsGoodClicks count]); эта вещь сделала трюк. –

1

Вам нужно создать arrayContainsGoodClicks только один раз (в инициализации метод, например), а затем добавить значение в массив в обработчике кнопки:

//.h 
NSMutableArray *arrayContainsGoodClicks; 

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

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

Я получил. Спасибо за помощь ... –

1

Вам нужно создать массив и сохранить его как Ивар.

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

Теперь в методе -init создать массив как ..

self.clicksArray = [NSMutableArray array]; 

И добавить объект в массив каждый раз, так что ваш -onClickOfGood бы стать чем-то вроде ...

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

Ya ya ..gotot..Thanks для помощи .. –