如何将NSTimeInterval值存储到NSMutableArray中?

Pra*_*ypa 5 iphone objective-c nsmutablearray nstimeinterval ios5

我有一个要求,我有一个使用的视频MPMediaPlayerController.除了视频我还有两个按钮,我需要在点击按钮时捕获当前的播放时间并单独存储所有相关的点击.我可以使用返回的"currentPlaybackTime"属性获取视频的当前播放时间NSTimeInterval.但有人可以帮助我如何将所有NSTimeInterval值存储到一个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]);}
Run Code Online (Sandbox Code Playgroud)

但是每次点击好按钮后我都会将阵列计数仅为1.有人可以点亮我出错的地方吗?

das*_*ght 3

但每次点击“好”按钮后,我得到的数组计数仅为 1。

NSMutableArray考虑到您正在前一条线上创建全新的线,这并不奇怪。

要解决此问题,您需要创建NSMutableArray *arrayContainsGoodClicks一个实例变量(又名 ivar),将其初始化为[NSMutableArray array]指定的初始值设定项,然后使用

[arrayContainsGoodClicks addObject:goodTimeIntervals];
Run Code Online (Sandbox Code Playgroud)

将对象添加到数组中。

如果您希望使用NSMutableDictionary它,则策略将是相同的,只是您需要决定要用作NSDictionary. 另请记住,它NSMutableDictionary不是有序的,因此您可能需要在每次向用户显示词典项目时进行排序。