2012-04-10 6 views
1

개체에 mmap 데이터를 사용하는 방법은 무엇입니까?개체에 mmap 데이터 사용

UIImage.

오프셋 및 바이트 수를 알고 검색 할 수있는 경우 개체와 함께 사용하는 방법은 무엇입니까?

데이터에 객체를 전달하는 방법에 대해 약간 혼란 스럽습니다. 객체는 정확한 바이트 수만 사용합니까?

현재 mmapped 데이터를 바이트 단위로 가져 와서 파일에 쓰면 이미지가 생성되지만 객체를 사용하여이를 수행하는 방법이 확실하지 않습니다.

물론 데이터를 사용할 수있을 때 개체를 할당 할 필요는 없지만 내부적으로 개체로 전달되고 관리되는 방법은 무엇입니까?

답변

1

효과적으로 코코아 개체를 할당하는 유일한 방법은 +alloc입니다. 나는 실제로 객체를 지속시키기 위해 mmapped 메모리를 사용할 수 있다고 생각하지 않는다.

그러나 UIImage에 대한 이미지 데이터를 검색하는 데 사용할 수 있습니다.

NSData* theData = [NSData dataWithBytesNoCopy: pointerToMMappedData 
             length: dataLength 
           freeWhenDone: NO]; 
UIImage* anImage = [UIImage imageWithData: theData]; 
+0

마지막 부분은 정확하게 제가 고마워 한 부분이었습니다. 따라서 데이터가 NSData 객체에 할당되면이 데이터를 사용하여 다른 객체를 설정할 수 있습니까? – jarryd

+0

@ Helium3 :'theData' 객체는 그것이 가리키는 바이트를 소유하지 않도록 초기화됩니다. 같은 바이트를 사용하여 다른 객체를 설정할 수 있지만 데이터 객체가 여전히 존재하는 동안 메모리를 변경하거나 매핑을 해제하려고하면 좋지 않은 생각입니다. – JeremyP

+0

감사합니다. 예, 매핑됩니다. 가상 메모리의 데이터가 압축되고 개체가 압축 해제 된 데이터를 가져야하는 경우 어떻게해야합니까? 즉석에서 압축 해제를위한 zlib 함수가 있지만이 데이터는 어디에 보관됩니까? 자체 압축 해제 된 데이터 세그먼트를 사용하는 개체가 50 개있는 경우이 개체가 모두 스택에 있습니까? – jarryd