gpt4 book ai didi

ios - 使用照片框架将图像保存到照片库

转载 作者:技术小花猫 更新时间:2023-10-29 10:40:52 26 4
gpt4 key购买 nike

每次尝试使用照片框架保存图像时,我的应用程序都会崩溃。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

_mChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[info valueForKey:UIImagePickerControllerOriginalImage]];

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{

_mChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[info valueForKey:UIImagePickerControllerOriginalImage]];

} completionHandler:^(BOOL success, NSError *error) {

if (success) {

PHObjectPlaceholder *assetPlaceholder = _mChangeRequest.placeholderForCreatedAsset;
}
else {

NSLog(@"write error : %@",error);
}
}];
}

crash : NSInternalInconsistencyException', reason: 'This method can only be called from inside of -[PHPhotoLibrary performChanges:completionHandler:] or -[PHPhotoLibrary performChangesAndWait:error:]'

最佳答案

您需要做的就是触发创建请求。如错误所述,您只能在 performChanges block 内访问更改请求。

因此,要保存图像,您需要执行以下操作:

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
[PHAssetChangeRequest creationRequestForAssetFromImage:[info valueForKey:UIImagePickerControllerOriginalImage]];
} completionHandler:^(BOOL success, NSError *error) {
if (success) {
NSLog(@"Success");
}
else {
NSLog(@"write error : %@",error);
}
}];

如果您需要对新创建的 Assets 的占位符执行某些操作,您可以在同一个 performChanges block 中访问它:

PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[info valueForKey:UIImagePickerControllerOriginalImage]];
PHObjectPlaceholder *assetPlaceholder = changeRequest.placeholderForCreatedAsset;

关于ios - 使用照片框架将图像保存到照片库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31693375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com