UIImagePickerController
을 사용하여 사용자가 앱에서 공유 할 사진 또는 비디오를 선택할 수있게합니다. 당신이 앨범에서 항목을 선택하기위한 경우를 제외하고, 사진 및 비디오 모두PHAsset은 fetchAssetsWithALAssetURLs에서 반환 : UIImagePickerController를 사용하여 "내 사진 스트림"앨범에서 사진을 선택할 때 항상 없음
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
PHAsset *asset;
if ([info[@"UIImagePickerControllerMediaType"] isEqualToString:@"public.movie"]) {
// Video
asset = [[PHAsset fetchAssetsWithALAssetURLs:@[info[@"UIImagePickerControllerReferenceURL"]] options:nil] lastObject];
} else if ([info[@"UIImagePickerControllerMediaType"] isEqualToString:@"public.image"]) {
// Photo
PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:@[info[@"UIImagePickerControllerReferenceURL"]] options:nil];
asset = [[PHAsset fetchAssetsWithALAssetURLs:@[info[@"UIImagePickerControllerReferenceURL"]] options:nil] lastObject];
}
}
if statements
잘 동작 모두 : 사용자가 자신의 라이브러리에서 미디어 항목을 선택하면, 나는 UIImagePickerController's
위임 방법 중 하나에이 코드를 실행 "My Photo Stream"
이라고 제목을 붙였다.
"My Photo Stream"
에서 항목을 선택하면 PHAsset
은 항상 nil
입니다. ALAssetsLibrary assetForURL: always returning nil for photos in "My Photo Stream" in iOS 8.1
그러나 위의 링크가 더 이상 애플에서 권장하는 AssetsLibrary
프레임 워크를 사용합니다 :
"아이폰 OS에서를
나는 작업 솔루션으로 해답을 가지고 나타나는 다음과 같은 질문을 발견 8.0 이상에서는 Assets 라이브러리 프레임 워크 대신 Photos 프레임 워크를 사용하고 Photos 프레임 워크는 더 많은 기능을 제공하며 사용자의 사진 라이브러리 작업에 대해 더 나은 성능을 제공합니다.
"My Photo Stream"
앨범의 미디어 항목에 대해 PHAsset
개체를 반환 할 수 있어야합니다. 현재 info
사전에 UIImagePickerController
에 의해 반환 된 참조 URL은 콘솔에 로그인하는 유효한 URL이지만이 URL을 사용하면 올바른 PHAsset
개체는 반환되지 않습니다. 그것은 버그 및 최신 아이폰 OS 8.2 베타 버전에서 수정 될 것으로 보인다
assets-library://asset/asset.JPG?id=DCF5C6E5-B4F4-4E61-9C4B-CC63E104BF2B&ext=JPG
iOS 8.2 베타 5에서 이것이 작동하는지 확인할 수 있습니다. – Kyle
IOS 8.2로 업데이트되었지만 불행히도 여전히 작동하지 않습니다. – wgr
은 8.4.1에서도 여전히 문제가있는 것으로 보입니다. – mahboudz