Как перечислить группу ALAssets в Swift

Я старался изо всех сил, но я застрял здесь. Я хотел импортировать все фотографии из фотоальбома iPhone. Поэтому я придумал этот API ALAssestsLibrary.

photoLibrary.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupSavedPhotos), usingBlock: { group in if group != nil { } }, failureBlock: { error in println("\(error)")}) 

как добавить эту строку кода.

 group enumerateAssetsUsingBlock:groupEnumerAtion 

Я попытался добавить это, но он не показывает свойство enumerateAssetsUsingBlock.?

Это фактический код. !! В Objective-C

  dispatch_async(dispatch_get_main_queue(), ^ { @autoreleasepool { ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror) { NSLog(@"error occour =%@", [myerror localizedDescription]); }; ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset *result, NSUInteger index, BOOL *stop) { if (result!=NULL) { if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) { [self.g_imageArray addObject:result]; } } }; ALAssetsLibraryGroupsEnumerationResultsBlock libraryGroupsEnumeration = ^(ALAssetsGroup* group, BOOL* stop) { if (group == nil) { return; } if (group!=nil) { [group enumerateAssetsUsingBlock:groupEnumerAtion]; } [self updatephotoList]; }; self.library = [[ALAssetsLibrary alloc] init]; [self.library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:libraryGroupsEnumeration failureBlock:failureblock]; } }); 

One Solution collect form web for “Как перечислить группу ALAssets в Swift”

У вашего enumerationBlock и failureBlock нет нужного типа. Например, блок перечисления определяется как

 typealias ALAssetsLibraryGroupsEnumerationResultsBlock = (ALAssetsGroup!, UnsafeMutablePointer<ObjCBool>) -> Void 

это означает, что аргумент является замыканием (ALAssetsGroup!, UnsafeMutablePointer<ObjCBool>) качестве параметров и возвращающим Void :

 { (group: ALAssetsGroup!, stop: UnsafeMutablePointer<ObjCBool>) -> Void in // ... } 

Таким образом, ваш код должен выглядеть так:

 photoLibrary.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupSavedPhotos), usingBlock: { (group: ALAssetsGroup!, stop: UnsafeMutablePointer<ObjCBool>) -> Void in if group != nil { group.enumerateAssetsUsingBlock({ (asset: ALAsset!, index: Int, stop: UnsafeMutablePointer<ObjCBool>) -> Void in // ... }) } }, failureBlock: { (myerror: NSError!) -> Void in println("error occurred: \(myerror.localizedDescription)") }) 

Из-за функции автоматического выбора типа Swift вы можете написать это также как

 photoLibrary.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupSavedPhotos), usingBlock: { group, stop in if group != nil { group.enumerateAssetsUsingBlock({ asset, index, stop in // ... }) } }, failureBlock: { myerror in println("error occurred: \(myerror.localizedDescription)") }) 

но в этом случае первая версия, вероятно, легче понять.

  • Непризнанный селектор отправлен в экземпляр _UIAlertControllerAlertPresentationController
  • Alamofire Xcode 8 Swift 3 приводит к ошибкам компиляции 786
  • Обновить ограничения других элементов при изменении высоты UITableView
  • Как обновлять каждый пользовательский элемент данных таблицы в одно и то же время?
  • Скрыть панель состояния во время заставки
  • Почему свойство собственности Obj-C по умолчанию «назначает» вместо «сильного»,
  • эффективный поиск огневой базы
  • Добавляя рамки приложения и расширения приложения в проект приложения IOS, я делаю это правильно?
  • parse.com в Swift - возможно ли получить извлеченный PFObject в качестве подкласса?
  • Функция Swift, которая принимает массив, дает ошибку: '@lvalue $ T24' не идентичен 'CGFloat'
  • Увольнение UIImagePickerController также отклоняет представление контроллера представления
  • Interesting Posts

    Рисование линии в iPhone / iPad

    Как управлять разрывом между двумя видами в макете

    Вызов распознавателя жестов Не работает для UIWebiew внутри UIScrollView, который находится внутри UIView

    Использование класса достижимости Apple в Swift

    Ошибка drawInRect: CGContextSetFont: недопустимый контекст 0x0

    GData не компилируется с Apple LLVM 4.1

    Начните новую строку (абзац) в Label или TextView

    Цель-C – Недостатки для преодоления C ++?

    iOS обнаружит захват фотографий из приложения камеры по умолчанию в вашем приложении из фона

    MagicalRecord (CoreData) + Today Extension (iOS8) … Будут ли они играть?

    Клавиатура десятичной клавиатуры не работает должным образом в iOS 8

    Отключить объектный C ARC с помощью настроек XCodeConfig

    Принудительное вращение устройства с помощью + tryRotationToDeviceOrientation failing

    Как изменить цвет каретки по умолчанию на iOS для ввода?

    Идентификатор пакета не отображается в идентификаторе пакета iTunesconnect

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.