Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 对对象使用mmap数据_Objective C_Ios_Mmap - Fatal编程技术网

Objective c 对对象使用mmap数据

Objective c 对对象使用mmap数据,objective-c,ios,mmap,Objective C,Ios,Mmap,如何将MMAP数据用于对象 e、 g.一个UIImage 如果我知道偏移量和字节数,并且我可以检索它,那么如何将其用于对象 我对如何将数据传递给对象有点困惑,对象如何只使用确切的字节数 我目前一个字节一个字节地获取映射数据并将其写入文件,这会创建一个图像,但我不确定如何使用对象来实现这一点 显然,由于数据可用,因此不需要分配对象,但如何在内部将其传递给对象并由对象管理?有效地,分配Cocoa对象的唯一方法是使用+alloc。我不认为您可以实际使用mmapped内存来持久化对象 但是,您可以使用它

如何将MMAP数据用于对象

e、 g.一个UIImage

如果我知道偏移量和字节数,并且我可以检索它,那么如何将其用于对象

我对如何将数据传递给对象有点困惑,对象如何只使用确切的字节数

我目前一个字节一个字节地获取映射数据并将其写入文件,这会创建一个图像,但我不确定如何使用对象来实现这一点


显然,由于数据可用,因此不需要分配对象,但如何在内部将其传递给对象并由对象管理?

有效地,分配Cocoa对象的唯一方法是使用
+alloc
。我不认为您可以实际使用mmapped内存来持久化对象

但是,您可以使用它来检索UIImage的图像数据

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

实际上,分配Cocoa对象的唯一方法是使用
+alloc
。我不认为您可以实际使用mmapped内存来持久化对象

但是,您可以使用它来检索UIImage的图像数据

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

最后一部分正是我想要的,谢谢。因此,一旦将数据分配给NSData对象,就可以使用此数据设置任何其他对象?@Helium3:
初始化数据对象,使其不拥有指向的字节。您可以使用相同的字节设置任何其他对象,但是在数据对象仍然存在的情况下尝试更改它们或取消映射内存是个坏主意。谢谢。是的,它将被映射。如果虚拟内存中的数据被压缩,对象需要解压数据,该怎么办?有zlib函数用于动态解压缩,但这些数据将保存在哪里?如果有50个对象使用自己的解压数据段,那么它们是否都在堆栈上?@Helium3:只要数据看起来与文件中的图像数据相同,UIImage就可以处理。最后一部分正是我要找的,谢谢。因此,一旦将数据分配给NSData对象,就可以使用此数据设置任何其他对象?@Helium3:
初始化数据对象,使其不拥有指向的字节。您可以使用相同的字节设置任何其他对象,但是在数据对象仍然存在的情况下尝试更改它们或取消映射内存是个坏主意。谢谢。是的,它将被映射。如果虚拟内存中的数据被压缩,对象需要解压数据,该怎么办?有zlib函数用于动态解压缩,但这些数据将保存在哪里?如果有50个对象使用它们自己的解压数据段,这些对象是否都在堆栈上?@Helium3:只要数据看起来与文件中的图像数据相同,UIImage就可以处理。