2012-03-12 3 views
2

문제는 UIImage에 이미지 파일을로드하는 것입니다. 원래 파일은 파일 시스템에 보관되어 있으며 C 라이브러리 (질문이 있습니다)에 의해 관리됩니다.C로 NSData에 파일로드

NSData *file = [NSData dataWithContentsOfFile:...]; 
[UIImage imageWithData:file]; 

하지만 어떻게 그것이 가능 C와 목표 - C로 파일 데이터를로드하는 방법 : 내가 그렇게 할 수있는 목표 - C와

? 나는 파일이 같은 열 수 있습니다 C와

:

ret = fopen(name, options); 

그러나 나는있는 NSData를 초기화하기 위해서 RET PTR을 사용할 수 있습니다

[NSData dataWithBytesNoCopy:ret length:length_of_ret];? 

덕분에 많은 도움을 위해!

답변

3

fread을 사용하여 파일에서 바이트를 읽습니다.

FILE * ret = fopen(name, options); 
void *data = malloc(bytes); 
fread(data, 1, bytes, ret); 
fclose(ret); 
NSData *data = [NSData dataWithBytesNoCopy:data length:bytes]; 
+0

"바이트"란 무엇입니까? ret-file의 크기? "읽기가 짧다면 반환 값 확인"이란 무엇을 의미합니까? NSData dealloc을 사용하여 데이터를 해제하거나 직접 해제해야합니다. –

+1

바이트는 파일 크기 (바이트)입니다. NSData dealloc가 작동합니다. NSData는 데이터의 소유권을 갖습니다. –