2016-12-27 10 views
2

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

ありがとうございました。

答えて

0

はその後PHOTOS & CAMERA設定に移動

、これを試してみてください。私は最適化のiPhoneストレージから、&キープオリジナルをダウンロードするオプションを変更しました。

私は通常、最適化設定の下に写真が元に戻ってダウンロードされ、次に編集が許可されていると思います。

ご希望の場合はお手数ですが、

+0

ありがとうございますが、私がApp Storeからダウンロードした他の公開フォト拡張機能はうまく機能します。私はそれがiPhoneの設定の問題ではないと思う – TKang

関連する問題