ios8에 사과 사과 같이 현명한 순간에 사진을 가져 오는 데 문제가 있습니다. 나는 PHAsset과 Photos.framework를 사용하여 ios8을 구현했다. 이제 ios7 장치에서 동일한 코드를 실행하면 아무 것도 반환하지 않습니다. 그래서 저는 ALAssetLibrary를 가지고 사진을 얻습니다. ALAssetLibrary 사용하기 나는 또한 모든 사진을 가지고 있지만 그것은 앨범 현명한 사진과 같습니다. 또한이 ALAssetLibrary를 사용하여 앨범의 생성 날짜를 위치 이름이 아닌 가져올 수 없습니다. 이는 각 섹션의 헤더에있는 데이터에이를 표시해야하기 때문입니다. ALAssetLibrary를 사용하여 iOS7에있는 사진을 가져 오는에 대한ios7에서 ALAssetLibrary를 사용하여 모든 사진을 현명하게 얻는 방법은 무엇입니까?
내 코드 :
_imagearray = [@[] mutableCopy];
__block NSMutableArray *tmpAssets = [@[] mutableCopy];
ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
[assetLibrary enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop)
{
if (group)
{
[group setAssetsFilter:[ALAssetsFilter allAssets]];
[group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop) {
if (asset!=nil)
{
[tmpAssets addObject:asset];
}
}];
}
self.imagearray = tmpAssets;
NSLog (@“%@“,self.imagearray);
}
failureBlock:^(NSError *error)
{
NSLog(@"error enumerating AssetLibrary groups %@\n", error);
}];
예, 사실입니다. iOS8에서도 관리했지만 iOS 7에서는 해결 방법을 찾지 못했습니다. –
할 수있는 유일한 방법 : 직접 전체 사진 라이브러리를 스캔 한 다음 구조와 같은 순간을 만듭니다 (메모리 또는 디스크의 데이터 구조/데이터베이스에서). 그러나 사용자가 많은 사진을 가지고 있다면 이것은 매우 느릴 것입니다. 또한 AssetsLibrary는 앱이 실행되지 않을 때 추가 또는 삭제 된 애셋을 찾는 방법이 없기 때문에 전체 라이브러리를 다시 검색해야합니다. – holtmann