2

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

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

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

转换为 NSData 时对大小有任何限制吗?

4

1 回答 1

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];

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

于 2013-09-21T12:30:50.587 回答