手机磁盘空间不足时停止下载

时间:2013-11-12 13:38:32

标签: ios http

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

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

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

1 个答案:

答案 0 :(得分: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与代理人一起使用)并提醒用户。