我正在存储大小超过 1 GB 的视频文件并存储到 homeDirectory。我正在尝试转换为 NSData 对象,如下所示
NSData *videoData = [[NSData alloc] initWithContentsOfFile:filePath];
但在这里我得到的视频数据为零。当我尝试 500 MB 的视频时,它工作正常。
转换为 NSData 时对大小有任何限制吗?
我正在存储大小超过 1 GB 的视频文件并存储到 homeDirectory。我正在尝试转换为 NSData 对象,如下所示
NSData *videoData = [[NSData alloc] initWithContentsOfFile:filePath];
但在这里我得到的视频数据为零。当我尝试 500 MB 的视频时,它工作正常。
转换为 NSData 时对大小有任何限制吗?
尝试使用这个(需要 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];
如果文件安全,这些会将文件映射到虚拟内存,这将显着减少总体使用的内存量。