将大数据转换为NSData

时间:2013-09-21 12:19:35

标签: ios objective-c nsdata

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

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

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

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

1 个答案:

答案 0 :(得分:8)

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

NSError *error = nil;
NSData *data = [[NSData alloc] initWithContentsOfFile:filePath
                                              options:NSDataReadingMappedIfSafe
                                                error:&error];

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

NSData *data = [[NSData alloc] initWithContentsOfMappedFile:filePath];

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