NSRangeException с PHFetchResult

Я разрабатываю приложение для iOS, которое извлекает видео из фотогалереи, и оно всегда работало. Я только что протестировал приложение на другом устройстве (это не первое, на котором я тестирую), и оно вылетает, когда я использую полученные данные, и я не понимаю, почему...

Вот мой код:

self.videosAssets = PHAsset.fetchAssetsWithMediaType(.Video, options: nil)

if self.videosAssets != nil {
    for i in 0..<self.videosAssets!.count {
        if let video = self.videosAssets!.objectAtIndex(i) as? PHAsset {
            self.videos.append(Video(asset: video))
        }
    }
}

Он получает 221 видео, но падает, когда i == 59.

Вот ошибка, которую я получаю:

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArray0 objectAtIndex:]: index 0 beyond bounds for empty NSArray'

person Thibaut Brnl    schedule 13.05.2016    source источник
comment
Нет, он не падает с i == 59, он падает с индексом 0. Вы уверены, что именно этот код действительно вызывает ошибку/сбой?   -  person luk2302    schedule 13.05.2016
comment
Я понял, что после этого я не тестировал конструктор видео ... Я думаю, что приложение вылетает здесь. буду тестить в понедельник   -  person Thibaut Brnl    schedule 13.05.2016


Ответы (1)


После тестирования конструктора видео это была проблема. По какой-то причине, когда я вызываю let resources = PHAssetResource.assetResourcesForAsset(asset), он возвращает мне пустой массив, и именно здесь происходит сбой приложения.

Извините за бесполезный пост, может кому поможет...

person Thibaut Brnl    schedule 16.05.2016