Я играю mp3-файл, хранящийся в каталоге активов приложения iOS & Я объявляю свой AVAudioPlayer, когда объявляю плеер с широким охватом приложения. Мой код работает отлично, но я хотел бы знать, если это плохая практика & если да, то почему. Большинство примеров коды воспроизведения аудио объявить AVPlayer как дополнительные, но не создать игрок в декларации, например, так:Можно ли создать AVAudioPlayer() в объявлении переменных и избежать опций/разворачивания?
var audioPlayer: AVAudioPlayer?
я реализую ниже б/с не имеют какие-либо ссылок на опции или принудительные разворачивания (I «Я просто наращиваю себя в Swift, но я использую это как ранний пример« Возбужденный »для своих учеников, чтобы они могли воспроизводить медиа в одном из своих первых приложений. Надеемся отложить обсуждение опций до конца.
// Объявляем AVAudioPlayer и назначить пустой игрок
var audioPlayer = AVAudioPlayer()
// Вызов этой функции для воспроизведения mp3-звук в файле активов под названием "sound0"
func playSound() {
if let sound = NSDataAsset(name: "sound0") {
do {
try audioPlayer = AVAudioPlayer(data: sound.data)
audioPlayer.play()
} catch {
print("ERROR: Couldn't create the AVAudioPlayer")
}
} else {
print("ERROR: Couldn't load sound file from asset catalog. Verify file is a valid sound file and that the name is correct.")
}
}
// Спасибо!
Вот отличная статья, которая более подробно описывает неявные варианты: http://stackoverflow.com/questions/24006975/why-create-implicitly-unwrapped-optionals –
Большое спасибо. Все это очень полезно. И спасибо за подтверждение подхода в порядке! – Gallaugher