我们使用SDWebImage从网络下载远程图像。 SDWebImage使用NSURLSession下载图像。
但是我们收到了奇怪的错误日志,因为出现错误Error Domain=NSPOSIXErrorDomain Code=28 "No space left on device"
,所以某人无法显示图片
此错误很少发生,无法重现。
然后我们收集磁盘使用情况信息并进行创建文件测试。我们找不到异常现象。
当用户遇到问题时,请重新打开我们的应用,然后图像可以再次显示。
这很奇怪,有人遇到过同样的问题吗?我可以确定这不是SDWebImage问题,似乎是系统问题。
答案 0 :(得分:0)
我在继续预取集合视图图像数据(更准确地在Texture的ASCollectionNode中使用willBeginBatchFetchWithContext)时遇到了相同的错误,内存增加到189MB并且抛出了错误。
但是我已经找到了解决方案,您应该尝试一下。
我认为您可以在收到错误时重试该请求,因为它只需要一点时间让系统为您释放更多空间。
答案 1 :(得分:0)
如果有人正在为该错误代码寻找iOS枚举:
#define ENOSPC 28 /* No space left on device */
所以我的检查代码如下:
error.code == ENOSPC && [error.domain isEqualToString:NSPOSIXErrorDomain]
当设备存储空间即将满(文件大小为160 MB,可用空间为60 MB)时,我在从Web加载文件的过程中发现了此错误。希望这会对别人有所帮助。