사용자가 설정 탭에서 노래를 선택하고 필요에 따라 다른보기로 재생할 수있는 앱을 만들고 있습니다. 사용자가 앱을 종료하고 다른 시간에 다시 열면이 항목을 저장할 수 있기를 바랍니다.MPMediaItemCollection 객체를 유지하는 방법은 무엇입니까? (iPod에서 선택)
나는 사용자가와에서 노래를 선택하고 저장할 수 있도록 관리해야 :
-(IBAction)showMediaPicker:(id)sender{
MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAny];
mediaPicker.delegate = self;
mediaPicker.allowsPickingMultipleItems = NO;
mediaPicker.prompt = @"Select Alarm Sound";
[self presentModalViewController:mediaPicker animated:YES];
}
- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection {
[self dismissModalViewControllerAnimated: YES];
settingsData.selectedSong = mediaItemCollection;//Object of type MPMediaItemCollection
하지만 사용자들이 응용 프로그램을 사용하는이 때마다해야 할.
내가 시도를 사용 NSUserDefaults :
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:settingsData.selectedSong forKey:@"alarmSoundKey"];
[defaults synchronize];
있지만 오류 얻을 :
* - [NSUserDefaults의 setObject : forKey :] '클래스의'비 속성 값을 삽입하는 시도를 MPMediaItemCollection '입니다. 속성 목록의 사전과 배열에는 속성 값만 포함해야합니다.
내 옵션은 무엇입니까? 이 일을 해결하는 방법을 정말 확실하지 ...
솔루션 -
나는 아직 내 자신의 질문에 대답 할 수없는 그래서 나는 여기를 놓을 게요 : 나는 내 자신의 해결책을 발견
본 :
먼저 변환/그것을 사용 NSUserDefaults를 사용하여있는 NSData 개체와 슬램 저장소에 MPMediaItemCollection를 인코딩 : 거기에서
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:mediaItemCollection];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:data forKey:@"someKey"];
[defaults synchronize];
, 당신이 해독 할 수있는 앱의 다른 곳에서 사용할 수 있습니다. ...
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:@"someKey"];
MPMediaItemCollection *mediaItemCollection = [NSKeyedUnarchiver unarchiveObjectWithData:data]
누군가에게 도움이되기를 바랍니다. 말로 표현하면 충분하지 않습니다. 문자 그대로 약 4 시간 동안이 문제를 해결해 왔습니다 ...
아, 감사합니다. –