2011-10-01 7 views
4

iPhone 파일 시스템에 많은 이미지를 작성해야한다고 가정합니다. 그리고 디스크에 이미지를 쓸 수있는 충분한 공간이 필요합니다. iPhone SDK를 사용할 수 있습니까?디스크 공간이 없음 iPhone SDK

답변

5

예, 가능합니다. (강력한 "구글"검색 엔진을 사용하여 발견) 다음 자습서를 참조하십시오)

http://iphoneincubator.com/blog/device-information/how-to-obtain-total-and-available-disk-space-on-your-iphone-or-ipod-touch

편집 : 추가 응답 재 :

시도 - 캐치 : 알 수없는 사용 가능한 디스크 공간, 디스크에있는 UIImage를 작성 일을하는 나쁜 방법. 코코아의 예외는 예외적 인 상황 (즉, 가치가있는 상황)에서만 발생합니다. 당신은

NSData *imageData = [myImage UIImageJPEGRepresentation]; 

(또는 UIImagePNGRepresentation)를 사용하여 이미지

등을 작성하는 경우 다음

NSError *error; 
BOOL success = [imageData writeToFile:(NSString *)path options:(NSDataWritingOptions)mask error:&error]; 

귀하의 BOOLfailed이 일 경우 당신을 말할 것이다, 그리고 error는 설명과 함께 NSError 객체를 포함합니다 오류 (error != nil에 대해 테스트하지 마십시오. 가끔 충돌 할 것입니다). 안전하게 오류`를 테스트 할 수 있도록`= nil` 호출 후;!

+0

당신은'NSError * 오류 = 전무를 초기화해야한다. :-) 그리고 나서 그것은 더 이상 충돌하지 않을 것입니다. –

+2

WWDC 토크에서 직접 확인 : 메서드가 false를 반환하지 않는 한 오류 값은 * undefined *입니다. 메서드가 false를 반환하면 오류 값을 확인/신뢰/사용해야합니다. –

+0

@KennyWinker이 오류를 검사하는 데 성공 했습니까? 디스크 공간이 충분하지 않을 때 오류 메시지에는 어떤 메시지가 포함됩니까? – onmyway133

1
+0

답장을 보내 주셔서 감사합니다. 나는이 링크를 일찍 보았지만 문제는 디스크에 UIImage를 작성하기 전에 크기를 알아야하고 사용 가능한 디스크 공간과 비교할 필요가 있다는 것입니다. 디스크에 쓰기 전에 UIImage의 크기를 어떻게 얻을 수 있습니까? 또는 오버플로가 발생할 경우 @try {} @ catch (NSException * e) { NSLog (@ "catching % @ reason % @", [e name], [e reason])에서 모든 종류의 예외를 catch 할 수 있습니다. } @finally { } – Matt

+0

@ user970349 이것은 일을하는 나쁜 방법입니다. 코코아의 예외는 예외적 인 상황 (즉, 가치가있는 상황)에서만 발생합니다. NSData * imageData = [myImage UIImageJPEGRepresentation]; (또는'UIImagePNGRepresentation')을 사용하여 이미지를 작성한 다음 NSError * error; BOOL success = [imageData writeToFile : (NSString *) path options : (NSDataWritingOptions) 마스크 오류 : & error;; 'BOOL이 실패하면 오류가 발생했으며 NISrror 객체에는 오류에 대한 설명이 포함됩니다 (don' t는'error! = nil'을 테스트합니다, 때때로 충돌 할 것입니다). –

+0

재생 해 주셔서 감사합니다. 나는 iPhone 개발에 익숙하지 않고 그러한 상세한 대답을 찾고있었습니다. – Matt