5

を使用して再生されるビデオがあるという要件がありますMPMediaPlayerController。ビデオに加えて、ボタンがクリックされたときの現在の再生時間をキャプチャし、関連するすべてのクリックを個別に保存する必要がある2つのボタンがあります。を返す「currentPlaybackTime」プロパティを使用して、ビデオの現在の再生時間を取得できますNSTimeIntervalNSTimeIntervalしかし、誰かがすべての値をに格納する方法を手伝ってくれますかNSMutableDictionary。私は次の方法を試しました:

-(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つだけとしてカウントされます。誰かが私が間違っているところに光を当てることができますか?

4

3 に答える 3

3

しかし、良いボタンをクリックするたびに、配列の数は1つだけになります。

NSMutableArray前の行でまったく新しいものを作成していることを考えると、これは驚くべきことではありません。

これを修正するにはNSMutableArray *arrayContainsGoodClicksインスタンス変数(AKA ivar)を作成[NSMutableArray array]し、指定された初期化子で初期化してから、を使用する必要があります。

[arrayContainsGoodClicks addObject:goodTimeIntervals];

配列にオブジェクトを追加します。

代わりに使用する場合NSMutableDictionary、戦略は同じですが、の一意のキーとして使用するオブジェクトを決定する必要がある点が異なりますNSDictionary。またNSMutableDictionary、これは順序付けられていないため、辞書アイテムをユーザーに表示するたびに並べ替えに注意する必要がある場合があります。

于 2012-04-09T15:11:00.227 に答える
1

arrayContainsGoodClicks(たとえば、initメソッドで)一度だけ作成してから、ボタンハンドラーでこの配列に値を追加する必要があります。

//.h
NSMutableArray *arrayContainsGoodClicks;

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

//.m - button handler
[arrayContainsGoodClicks addObject:goodTimeIntervals];
于 2012-04-09T15:11:53.080 に答える
1

配列を作成し、ivar として保存する必要があります。

@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]);
于 2012-04-09T15:19:41.707 に答える