0

我正在从服务器下载视频和 pdf。当我的设备内存不足时说 50MB left ,然后在下载我的应用程序时崩溃。如何检查下载的数据是否会超过手机中剩余的内存空间?

如果数据超过可用空间,如何停止下载?

有人知道简单的解决方案吗?

4

1 回答 1

3

您可以在开始请求之前获取可用磁盘空间:

NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];
NSNumber *freeFileSystemSizeInBytes = [dictionary objectForKey:NSFileSystemFreeSize];

当你得到NSURLResponse请求时,你应该(希望)有一个内容大小的标题,这样你就知道需要多少数据。如果数据量太大,您可以cancel请求(假设您正在使用NSURLConnection委托)并提醒用户。

于 2013-11-12T13:45:04.327 回答