Я пытаюсь создать простую звуковую панель в Swift с представлением коллекции, каждая кнопка представляет звук, который можно воспроизвести.Структура выглядит следующим образом (я знаю, что это, вероятно, не самый умный способ сделать это, но он работал раньше, пока я не добавил еще несколько звуков): У меня есть SoundFiles.swift с классом SoundFiles, который я объявил
static let shared = SoundFiles()
Содержит два массива
let soundfiles: [String] = ["example_bla"]
let soundnames: [String] = ["example bla"]
, а также
var translation: [String: String] = [:]
var currentSoundfiles: [String] = []
, где словарь "перевода" должен иметь значение между именами файлов и тем, чтоотображается на экране, то есть соответствует массивам «звуковые файлы» и «звуковые имена».Массив «currentSoundfiles» заботится об отображаемых звуковых файлах после применения фильтра (функция поиска).В моем контроллере панели вкладок у меня есть View Controller, содержащий
var soundPlayers: [Sound?] = []
override func viewDidLoad() {
super.viewDidLoad()
setUpView()
setupSwiftySound()
setupDismissKeyboard()
SoundFiles.shared.currentSoundfiles = SoundFiles.shared.soundfiles
SoundFiles.shared.findTranslation()
fillDropDowns()
fillSounds()
}
override func viewDidAppear(_ animated: Bool) {
refreshCollectionView()
}
, где
func fillSounds(){
soundPlayers.removeAll()
for (index, _) in SoundFiles.shared.currentSoundfiles.enumerated(){
if let playingURL = Bundle.main.url(forResource: SoundFiles.shared.currentSoundfiles[index], withExtension: "wav"){
soundPlayers.append(Sound(url: playingURL))
soundPlayers[index]?.volume = SoundFiles.shared.volume
}
}
}
- единственная соответствующая функция.Пока я включаю 49 или меньше звуковых файлов, все работает отлично.Включая 50 или более звуковых файлов, следующая ошибка / предупреждение появляется несколько раз:
Ошибка инициализации SwiftySound: Ошибка Domain = NSOSStatusErrorDomain Code = -42 "(null)"
Что странно, так это то, что я все еще могу запустить первые 49 звуковых файлов без проблем (нажатие на другие кнопки просто ничего не делает), но любое другое действие вызывает сбой приложения, например, попытка перейти на другой View Controllerприложения или получения дополнительной информации о звуковом файле, нажав «+» рядом с кнопкой (реализовано с помощью DropDown Menu).Ошибка сбоя при попытке перейти на вторую вкладку View Controller выглядит следующим образом:
Завершение приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Не удалось загрузить NIB в комплекте:« NSBundle (загружен)) 'с именем 'fGY-5Н-E9k-вид-OBO-1i-МРО' и каталог 'SbOne.storyboardc'' *** Первый стек бросить вызов: (0x185e48ec4 0x185019a50 0x185d4f594 0x1b2c8fea8 0x1b2a208e0 0x1b2a2128c 0x1b2a21554 0x1b298dea8 0x1b298e1b0 0x1b298f140 0x1b2990440 0x1b2972630 0x1b349177c 0x18a444b7c0x18a449b34 0x18a3a8598 0x18a3d6ec8 0x18a3d7d30 0x185dd87cc 0x185dd3460 0x185dd3a00 0x185dd31f0 0x18804c584 0x1b2fe8c00 0x102474838 0x185892bb4) Libc ++ abi.dylib: оканчивающиеся неперехваченного исключением типа NSException (lldb)
и XCode подводит меня к AppDelegate.swift показывая
Тема 1: сигнал SIGABRT
Проблема не зависит от того, какие звуковые файлы включены, она зависит только от номера.У кого-нибудь есть представление о том, что здесь происходит?