Я довольно новичок в Objective C, но все идет хорошо. Тем не менее, я думаю, что мне не хватает ключевой концепции, связанной с тем, как создаются и передаются сообщения. Я надеюсь, что кто-то может мне помочь.Отправка сообщения объекту
Я создаю приложение для iPhone, которое просто создает MPMusicPlayer и начинает воспроизводить песню из очереди.
создать музыкальный проигрыватель (myPlayer) в AppDelegate как так ...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// Add the main view controller's view to the window and display.
[window addSubview:mainViewController.view];
[window makeKeyAndVisible];
// instantiate a music player
MPMusicPlayerController *myPlayer =
[MPMusicPlayerController applicationMusicPlayer];
// assign a playback queue containing all media items on the device
[myPlayer setQueueWithQuery: [MPMediaQuery songsQuery]];
// start playing from the beginning of the queue
[myPlayer play];
return YES;
}
Это прекрасно работает. Теперь в MainViewController я пытаюсь отправить myPlayer команду, чтобы перейти к следующему треку
[myPlayer skipToNextItem];
Однако, когда я пытаюсь скомпилировать я получаю сообщение, что myPlayer в необъявленной.
Что я делаю неправильно? Я могу понять, как я могу исправить это процедурным способом (создав плеер в MainViewController), но я хотел бы понять, что мне нужно сделать, чтобы заставить его работать и работать с ООП.
Приветствия,
Ричард
Toastor, все это большой совет относительно Ивар и свойств, и ОП, конечно, нужно знать все это ... однако, я думаю, что это немного вводит в заблуждение этот конкретный случай, потому что OP хочет получить доступ к одноэлементному объекту, который (а) он может легко сделать, просто используя [MPMusicPlayerController applicationMusicPlayer] снова из объекта контроллера вида. Это, вероятно, также более формально корректно (хотя, очевидно, сохранение на практике единственной ссылки на практике вообще безопасно). – Echelon
Приветствия, которые выполнили эту работу. – Shadrax