2011-12-14 1 views
3

У меня есть данные для 100 видеороликов в моем приложении. Мне нужно каждое время воспроизведения видео, когда оно приостановлено или когда оно остановлено. Мне нужно сохранить все время воспроизведения видео, используя NSUserDefaults. Как я могу это достичь?Как сохранить и получить данные с помощью NSUserDefaults

Я пробовал это. Он отлично работает для отображения продолжительности остановки, но мне нужно сохранить остановленную, приостановленную и полную продолжительность видео в одной ключевой ссылке на значение, например, в массиве или словаре.

-(void) moviePlayerPlaybackStateDidChange:(NSNotification*)notification { 

    NSLog(@"playbackDidChanged"); 
    moviePlayer = notification.object; 
    MPMoviePlaybackState playbackState = moviePlayer.playbackState; 
    if(playbackState == MPMoviePlaybackStateStopped) { 
     NSLog(@"MPMoviePlaybackStateStopped at %f while the full length is %f", moviePlayer.currentPlaybackTime, moviePlayer.duration); 
     NSLog(@"video title %@",videoTitle); 
     [[NSUserDefaults standardUserDefaults] setDouble:moviePlayer.currentPlaybackTime forKey:videoTitle]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
     NSLog(@"User default value : %@", [[NSUserDefaults standardUserDefaults] objectForKey:videoTitle]); 
    } else if(playbackState == MPMoviePlaybackStatePlaying) { 
     NSLog(@"MPMoviePlaybackStatePlaying"); 
    } else if(playbackState == MPMoviePlaybackStatePaused) { 
     NSLog(@"MPMoviePlaybackStatePaused : %f",moviePlayer.currentPlaybackTime); 
     [[NSUserDefaults standardUserDefaults]setDouble:moviePlayer.currentPlaybackTime forKey:videoTitle]; 
    } 
} 
+0

Добавил мой код? – ganesh

+1

Почему бы вам просто не хранить 'NSDictionary' для каждого слова' videoTitle', а не 'double', т. Е. Использовать' setObject: forKey: 'вместо' setDouble: forKey: 'и хранить там всю информацию, которую вы хотеть. (Обратите внимание, что лично я бы использовал другой класс, чтобы сделать что-то вроде этого, поскольку загрязнение «NSUserDefaults» похоже на неидеал, IMO). – mattjgalloway

+0

Я бы просто сохранил его как словарь, а не отдельные значения. –

ответ

1

Собственно, когда я думаю об этом. Если вы знаете местоположение каждого видео, и вы добавили эти значения в NSUserDefaults, я бы сохранил все в массиве словарей. Тогда у вас есть только одна запись по умолчанию, а не 100. И вам должно быть легко выяснить, какой из них вам нужен.