2012-04-09 19 views
5

MPMediaPlayerController kullanılarak oynanan bir Videonun olduğu bir gereksinim var. Video ile birlikte butona tıklandığında ve ilgili tüm tıklamaları tek tek sakladığımda geçerli oynatma süresini yakalamam gereken iki düğme var. Videonun geçerli oynatma süresini NSTimeInterval döndüren "currentPlaybackTime" özelliğini kullanarak alabiliyorum. Ama birisi bana NSTimeInterval değerlerinin tümünü NSMutableDictionary'a nasıl kaydedebileceğine yardım edebilir. Aşağıdaki yolları denedi:NSTimeInterval değerleri bir NSMutableArray içine nasıl depolanır?

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

Ama ne ben sadece 1. Birisi ben yanlış gidiyorum üzerinde ışık tutacak misiniz Dizi olarak sayılır alıyorum iyi düğmeyi tıklamak sonra?

+3

Düğmeye her basıldığında yeni bir dizi oluşturuyor musunuz? – meggar

+0

Hatayı düzelttim .. –

cevap

3

Ama ne iyi düğmeyi tıklamak sonra ben Dizi saymak alıyorum sadece 1.

Bu yaratmakta olduğu göz önüne alındığında şaşırtıcı değildir yepyeni bir önceki satırda NSMutableArray.

Bunu düzeltmek için, sen NSMutableArray *arrayContainsGoodClicks bir örnek değişken (AKA ivar) yapmak belirlenen in başlatıcısı [NSMutableArray array] bunu başlatmak ve ardından diziye nesneleri eklemek için

[arrayContainsGoodClicks addObject:goodTimeIntervals]; 

kullanmak gerekir.

Bunun yerine NSMutableDictionary'u kullanmak istiyorsanız, NSDictionary numaralı anahtarınıza benzersiz anahtarlar olarak kullanmak istediğiniz bir nesneye karar vermeniz dışında, strateji aynı olacaktır. Ayrıca, NSMutableDictionary'un sipariş edilmediğini de unutmayın; bu nedenle, sözlük öğelerinizi kullanıcılara her gösterdiğinizde sıralamaya dikkat etmeniz gerekebilir.

+0

Çok teşekkürler ... Bazen kendimi denedim ve şaşırtıcı bir şekilde önerilen aynıydı. Doğru yolda olduğumu harika hissediyor .. [arrayContainsGoodClicks addObject: goodTimeIntervals]; NSLog (@ "" Dizinin toplam sayısı şöyledir:% i ", [arrayContainsGoodClicks count]); Bu şey hile yaptı .. –

1

Sen (örneğin init yönteminde) sadece bir kez arrayContainsGoodClicks oluşturabilir ve sonra düğme işleyicisi bu dizide değer katmak gerekir:

//.h 
NSMutableArray *arrayContainsGoodClicks; 

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

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

Ya anladım. Yardımınız için teşekkürler ... –

1

Sen diziyi oluşturup Ivar olarak saklamak gerekir. senin -init yöntemi gibi dizi oluşturmak Şimdi

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

..

self.clicksArray = [NSMutableArray array]; 

Ve dizinin her zaman nesne eklemek böylece -onClickOfGood ... gibi bir şey olacaktı

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

Ya ya ..tut .. Yardımınız için teşekkürler .. –

İlgili konular