【问题标题】:Convert large data to NSData将大数据转换为 NSData
【发布时间】:2013-09-21 12:19:35
【问题描述】:

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

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

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

转换成 NSData 时大小有限制吗?

【问题讨论】:

    标签: ios objective-c nsdata


    【解决方案1】:

    尝试使用这个(需要 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];
    

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

    【讨论】:

    • @dreamlax 你能用 Swift 复制这个吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    相关资源
    最近更新 更多