将大数据转换为NSData

Suj*_*jit 2 objective-c nsdata ios

我正在存储大小超过1 GB的视频文件并存储到homeDirectory中.我试图转换为NSData对象如下

NSData*videoData = [[NSData alloc] initWithContentsOfFile:filePath];

但在这里我得到的视频数据为零.当我尝试500 MB的视频时它工作正常.

转换为NSData时,大小是否有任何限制?

dre*_*lax 8

尝试使用此功能(需要iOS 5.0或更高版本):

NSError *error = nil;
NSData *data = [[NSData alloc] initWithContentsOfFile:filePath
                                              options:NSDataReadingMappedIfSafe
                                                error:&error];
Run Code Online (Sandbox Code Playgroud)

在iOS 5.0之前,您可以使用:

NSData *data = [[NSData alloc] initWithContentsOfMappedFile:filePath];
Run Code Online (Sandbox Code Playgroud)

如果文件安全,它们会将文件映射到虚拟内存中,这将显着减少整体使用的内存量.