我正在使用新的 iOS 8 照片框架,尝试编辑图库中的现有照片,然后替换它,但它没有被替换,即使我可以看到我设置的所有成功日志消息。
这是我的代码:
UIImage *output = [self.imageView.image appendDateWithLabel:label];
self.imageView.image = output;
// self.info was retrieve by the UIImagePickerController delegate method
NSURL *assetURL = self.info[UIImagePickerControllerReferenceURL];
PHFetchResult *result = [PHAsset fetchAssetsWithALAssetURLs:@[assetURL] options:nil];
PHAsset *asset = result.firstObject;
if ([asset canPerformEditOperation:PHAssetEditOperationContent])
{
[asset requestContentEditingInputWithOptions:nil completionHandler:^(PHContentEditingInput *contentEditingInput, NSDictionary *info) {
PHContentEditingOutput *contentEditingOutput = [[PHContentEditingOutput alloc] initWithContentEditingInput:contentEditingInput];
NSData *outputData = UIImagePNGRepresentation(output);
BOOL wrote = [outputData writeToURL:contentEditingOutput.renderedContentURL options:NSDataWritingAtomic error:nil];
if (wrote)
{
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetChangeRequest *request = [PHAssetChangeRequest changeRequestForAsset:asset];
request.contentEditingOutput = contentEditingOutput;
} completionHandler:^(BOOL success, NSError *error) {
// console output : 1
NSLog(@"success : %@", @(success));
// console output : nil
NSLog(@"error : %@", error);
}];
}
}];
}
我没有尝试替换,而是尝试创建修改后的副本。这个效果很好,我可以在我的图库中看到新修改的照片。
有人已经遇到过这个问题吗?
最佳答案
似乎必须填写 PHContentEditingOutput
对象的 adjustmentData
属性才能编辑照片。
PHAdjustmentData *adjustmentData = [[PHAdjustmentData alloc] initWithFormatIdentifier:@"AdjustementDataIdentifier" formatVersion:@"1.0" data:nil]
关于ios 8 照片框架 - 替换不工作的照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24385846/