Photo Extensionを作成していますが、変更を保存しようとしています(Done button Tapped)。IOS)Photo Extension変更を保存できない問題
アラートメッセージに「変更を保存できません」と表示されます - 保存中にエラーが発生しました 後でもう一度お試しください。
これは finishContentEditingWithCompletionHandlerための私のコードです:この問題のcompletionHandler
- (void)finishContentEditingWithCompletionHandler:(void (^)(PHContentEditingOutput *))completionHandler {
// Update UI to reflect that editing has finished and output is being rendered.
// Render and provide output on a background queue.
dispatch_async(dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0), ^{
// Create editing output from the editing input.
PHContentEditingOutput *output = [[PHContentEditingOutput alloc] initWithContentEditingInput:self.input];
NSURL *originalImageURL = self.input.fullSizeImageURL;
//Apply filter
CIFilter *appliedFilter = [CIFilter filterWithLUT:self.presetFilterNameArray[self.currentAppliedFilterIndex] originalLUT:@"LUT-ORG-512" dimension:64 alpha:self.filterAlphaSlider.value CIContext:self.ciContext];
UIImage *filteredOriginalImage = [self filterApply:[UIImage imageWithContentsOfFile:originalImageURL.path] filter:appliedFilter];
//Apply orientation
filteredOriginalImage = [UIImage imageWithCGImage:filteredOriginalImage.CGImage scale:filteredOriginalImage.scale orientation:self.input.fullSizeImageOrientation];
// Provide new adjustments and render output to given location.
NSData *archiver = [NSKeyedArchiver archivedDataWithRootObject:self.presetFilterNameArray[self.currentAppliedFilterIndex]];
output.adjustmentData = [[PHAdjustmentData alloc] initWithFormatIdentifier:@"com.fantagram.BetterAndBetter.TKPhotoExtension" formatVersion:@"1.0" data:archiver];
NSData *renderedJPEGData = UIImageJPEGRepresentation(filteredOriginalImage, 1.0f);
if([renderedJPEGData writeToURL:output.renderedContentURL atomically:YES]){
NSLog(@"success to write");
}
else{
NSLog(@"fail to write");
}
NSLog(@"%@", output);
// Call completion handler to commit edit to Photos.
completionHandler(output);
// Clean up temporary files, etc.
});
}
前の回答、誰かがNSDataのにレンダリングする際に、画像のサイズがoriginalImageと異なるする必要があると述べました。だから私はこれを試みたが、うまくいかなかった。
もう1つ。
フォトエクステンションからホストアプリケーションを開く方法はありますか?
self.extensionContextのOpenURL:上記のコード(。私はそれを知っているようにだけ今日拡張で に動作します)動作しませんでした
UIResponder *responder = self;
while(responder){
if([responder respondsToSelector:@selector(openURL:)]){
dispatch_async(dispatch_get_main_queue(), ^{
[responder performSelector:@selector(openURL:) withObject:[NSURL URLWithString:(MY_URL_Schemes)]];
});
}
responder = [responder nextResponder];
}
もうまくいきませんでした。それは私がそれを使用したときに働いたshare extension
。
ありがとうございました。
ありがとうございますが、私がApp Storeからダウンロードした他の公開フォト拡張機能はうまく機能します。私はそれがiPhoneの設定の問題ではないと思う – TKang