我正在从服务器下载视频和 pdf。当我的设备内存不足时说 50MB left ,然后在下载我的应用程序时崩溃。如何检查下载的数据是否会超过手机中剩余的内存空间?
如果数据超过可用空间,如何停止下载?
有人知道简单的解决方案吗?
您可以在开始请求之前获取可用磁盘空间:
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
委托)并提醒用户。