2014-10-12 3 views
2

저는 사진 편집 확장 프로그램을 만들고 PHAdjustmentData의 변경 사항에 대한 정보를 저장하여 나중에 사용자가 수정할 수 있도록하고 싶습니다. 필자는 필요한 모든 데이터를 PHAdjustmentData에 저장하지만, 다음에 이미지를 편집 할 때 - PHAdjustmentData는 nil입니다. 내가 다음에 사용자가 이미지를 편집 액세스 할 수 있도록PHAdjustmentData는 "startContentEditingWithInput"에서 nil입니다.

@property (strong, nonatomic) PHContentEditingOutput *output; 

- (void)startContentEditingWithInput:(PHContentEditingInput *)contentEditingInput placeholderImage:(UIImage *)placeholderImage 
{ 
    self.output = [[PHContentEditingOutput alloc] initWithContentEditingInput:contentEditingInput]; 

    // here contentEditingInput.adjustmentData is always nil 
} 

- (void)finishContentEditingWithCompletionHandler:(void (^)(PHContentEditingOutput *))completionHandler 
{ 
    NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 
    [dict setObject:@"value1" forKey:@"key1"]; 
    [dict setObject:@"value2" forKey:@"key2"]; 
    NSData *adjData = [NSKeyedArchiver archivedDataWithRootObject:dict]; 
    PHAdjustmentData *phAdjData = [[PHAdjustmentData alloc] initWithFormatIdentifier:@"ident" formatVersion:@"1.0" data:adjData]; 
    self.output.adjustmentData = phAdjData; 

    NSData *data = UIImageJPEGRepresentation(result, 1.0); 
    [data writeToURL:self.output.renderedContentURL options:NSDataWritingAtomic error:nil]; 

    completionHandler(self.output); 
} 

가 어떻게 제대로 조정 데이터를 저장합니까 : 여기 은 샘플 코드? 감사!

+1

['canHandleAdjustmentData'] (https://developer.apple.com/library/ios/documentation/PhotosUI/Reference/PHContentEditingController_Protocol/index.html#//apple_ref/occ/intfm/PHContentEditingController/canHandleAdjustmentData :) 자신의 조정 데이터 형식을 감지하면 YES를 반환합니까? – rickster

+0

그게 전부 였어. 방금 프로젝트를 만들었을 때 canHandleAdjustmentData를 NO로 설정하고 완전히 잊었습니다. 고마워요! – almas

+0

좋습니다. 솔루션을 답으로 이동하십시오. – rickster

답변

4

PhotoKit은 조정 데이터가 startContentEditingWithInput 일 때만 해당 데이터를 처리하기로 동의 한 경우에만 제공합니다. canHandleAdjustmentData을 구현하여 형식 식별자와 조정 버전을 확인한 다음 처리 할 수있는 형식에 대해 true를 반환하는 것에 동의합니다.

canHandleAdjustmentData에서 false를 반환하면 startContentEditingWithInput에 조정 데이터 없음이 표시됩니다. 뿐만 아니라 사진 이미지의 미리 편집 된 버전을 얻을 수 있으므로 마지막 편집 전에 어떻게 보았는지를 확인할 수 없습니다.