2012-10-07 3 views
2

사진 선택기를 사용하여 이미지를 선택하고 이미지를 apps 폴더에 내부적으로 저장하려고합니다. 내가 알아낼 수 없습니다 무엇App-iOS에서 이미지를 지속적으로 저장하십시오.

- (void) imagePickerController: (UIImagePickerController *) pickerdidFinishPickingMediaWithInfo: (NSDictionary *) info { 

NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType]; 
UIImage *originalImage, *editedImage, *imageToUse; 

// Handle a still image picked from a photo album 
if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) 
    == kCFCompareEqualTo) { 

    editedImage = (UIImage *) [info objectForKey: 
           UIImagePickerControllerEditedImage]; 
    originalImage = (UIImage *) [info objectForKey: 
           UIImagePickerControllerOriginalImage]; 

    if (editedImage) { 
     imageToUse = editedImage; 
    } else { 
     imageToUse = originalImage; 
    } 
    // Do something with imageToUse 

    //save it 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *imageName = [documentsDirectory stringByAppendingString:[NSString stringWithFormat:@"%d", myUniqueID]]; 
    NSString *imagePath = [imageName stringByAppendingPathComponent:@".png"]; 

    NSData *webData = UIImagePNGRepresentation(editedImage); 
    NSError* error = nil; 
    bool success = [webData writeToFile:imagePath options:NULL error:&error]; 
    if (success) { 
     // successfull save 
     imageCount++; 
     [[NSUserDefaults standardUserDefaults] setInteger:imageCount forKey:@"imageCount"]; 
     NSLog(@"@Success save to: %@", imagePath); 
    } 
    else if (error) { 
     NSLog(@"Error:%@", error.localizedDescription); 
    } 
} 
... 
} 

writeToFile::: 반환 false하지만 값이 잘못가는 뭐죠 내가 알아낼 수 없습니다 error에 반환되지 않습니다 것입니다. 도움을 주시면 대단히 감사하겠습니다.

답변

1

"/"가 없습니다. 선은 :

NSString *imageName = [documentsDirectory stringByAppendingString:[NSString stringWithFormat:@"%d", myUniqueID]]; 

은 다음과 같아야합니다

NSString *imageName = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d", myUniqueID]]; 

그리고 말한다 라인 :

NSString *imagePath = [imageName stringByAppendingPathComponent:@".png"]; 

은 다음과 같아야합니다

NSString *imagePath = [imageName stringByAppendingPathExtension:@"png"]; 

업데이트 :

그리고는, 안 :

NSData *webData = UIImagePNGRepresentation(editedImage); 

는 다음과 같은 일?

NSData *webData = UIImagePNGRepresentation(imageToUse); 
+0

답장을 보내 주셔서 감사합니다. 변화를 만들었지 만 여전히 아무것도. 대부분의 혼란. –

+0

이유는 모르겠지만 ... 변경하는 중 NSData * webData = UIImagePNGRepresentation (editedImage); to NSData * webData = [NSData dataWithData : UIImagePNGRepresentation (editedImage)]; –

+0

처음 작동하지 않는 이유를 모르겠지만 NSData 줄을 다시 변경하면 여전히 작동합니다 ... – Rob