Итак, у меня есть этот метод, который запускается при загрузке рассматриваемого контроллера представления.Однако, если поток, в котором он запущен, запускается более 3 раз, приложение завершает работу.Мне нужно убедиться, что в потоке одновременно работает только один экземпляр метода, как мне это сделать, насколько я знаю, у этого способа выполнения потока нет имени объекта потока, с которым можно было бы проверить.
- (void)observeNowPlaying{
[self performSelectorInBackground:@selector(changeSongValues) withObject:nil]; //run the song checker in the background
}
-(void)changeSongValues{
while(threadX != 1){
MPMediaItem *tempItem = musicController1.nowPlayingItem; //set up now playing
checkingSong = tempItem.title;
NSString *artist = tempItem.artist;
checkingSong = [[NSString alloc]initWithFormat:@"%@ - %@",(artist.length>0 ? artist : @"Unknown"),(checkingSong.length>0 ? checkingSong : @"Unknown")];
_SongPlaying.text = checkingSong; //this changes the currently playing song and stuff
usleep(5);
}
}