Итак, этот код у меня есть:
При нажатии кнопки:
-(void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
[self dismissModalViewControllerAnimated:YES];
self.selectedSong = mediaItemCollection;
NSLog(@"Selected song: %@", self.selectedSong);
}
Позже:
-(void)waitUntilSpeechIsDone {
NSLog(@"Test");
if ([audio isEqualToString:@"Music"]) {
if ([musicWhenToStart isEqualToString:@"Before"]) {
NSLog(@"Test");
NSLog(@"Selected song: %@", self.selectedSong);
[self.musicPlayer stop];
[self.musicPlayer setQueueWithItemCollection:self.selectedSong];
[self.musicPlayer play];
}
}
}
Он определяется как:
@interface RewriteViewController : UIViewController <MPMediaPickerControllerDelegate> {
MPMediaItemCollection *selectedSong;
}
@property(nonatomic,retain) MPMusicPlayerController *musicPlayer;
@property(nonatomic,retain) MPMediaItemCollection *selectedSong;
MPMediaItemCollection *selectedSong;
Затем оба файла синтезируются в файле .m.
Хорошо, так что он проходит через первую половину штрафа.NSLog возвращает что-то вроде «Выбранная песня:» Затем NSLog возвращает «Тест», (я положил это там, так что я знаю, что он зашел так далеко, если он по какой-то причине падает на следующей строке).Затем, когда он переходит к следующей строке, он возвращает «Выбранная песня: (ноль)».
Любые идеи почему?
РЕДАКТИРОВАТЬ: Оба выпущены в dealloc.