3
나는 최선을 다했으나 여기에 갇혀있다. iPhone 카메라 앨범에서 모든 사진을 가져오고 싶었습니다. 그래서이 ALAssestsLibrary API를 생각해냅니다.스위프트에서 ALAssetsGroup을 통해 열거하는 방법
photoLibrary.enumerateGroupsWithTypes(ALAssetsGroupType(ALAssetsGroupSavedPhotos), usingBlock: { group in
if group != nil
{
}
}, failureBlock: { error in println("\(error)")})
이 코드 줄을 추가하는 방법
group enumerateAssetsUsingBlock:groupEnumerAtion
추가를 시도했지만 enumerateAssetsUsingBlock 속성이 표시되지 않습니다.
이것은 실제 코드입니다. !! !! 오브젝티브 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];
}
});
고마워요! – garafajon
@garafajon : UnsafePointer를 UnsafeMutablePointer로 변경해야했습니다. 당신은 완벽합니다. 이것은 Swift 버전간에 변경되었습니다. 답변을 업데이트했습니다. 의견을 보내 주셔서 감사합니다! –