如果在iOS 9中加载了大量图像,应用程序将冻结
如果我加载了大量图像,我的应用程序将从iOS 9开始冻结。我们的web服务器有时在交付所有图像时出现问题(网关超时),因此应用程序会冻结到超时。没有错误,应用程序在这之后就很好了。我正在使用SDWebImage和RestKit。我可以在模拟器中重现冻结。我在iOS 8上没有这个问题。在向服务器发送请求之前,我会删除所有缓存的响应:如果在iOS 9中加载了大量图像,应用程序将冻结,ios,core-data,restkit,ios9,sdwebimage,Ios,Core Data,Restkit,Ios9,Sdwebimage,如果我加载了大量图像,我的应用程序将从iOS 9开始冻结。我们的web服务器有时在交付所有图像时出现问题(网关超时),因此应用程序会冻结到超时。没有错误,应用程序在这之后就很好了。我正在使用SDWebImage和RestKit。我可以在模拟器中重现冻结。我在iOS 8上没有这个问题。在向服务器发送请求之前,我会删除所有缓存的响应:[[NSURLCache sharedullcache]removeAllCachedResponses] 应用程序在信号灯\u等待\u陷阱中冻结 RestKit线程的
[[NSURLCache sharedullcache]removeAllCachedResponses]代码>
应用程序在信号灯\u等待\u陷阱中冻结
RestKit线程的最后一行是self.cachedResponse=[[NSURLCache sharedullcache]cachedResponseForRequest:requestOperation.request]代码>
SDWebImages线程的最后一行是if(![[NSURLCache sharedullcache]cachedResponseForRequest:\u request])
如果我在冻结期间暂停调试,我会在调试导航器窗口中获得此输出(YPI
类是我自己的):
非常感谢您的帮助。找到原因:[[NSURLCache sharedullcache]removeAllCachedResponses]发送请求之前的代码>导致UI挂起。删除这些行并为整个应用禁用NSURLCache
后,问题消失了:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
找到原因:[[NSURLCache sharedullcache]removeAllCachedResponses]发送请求之前的代码>导致UI挂起。删除这些行并为整个应用禁用NSURLCache
后,问题消失了:
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
我也有同样的问题,起初我认为这是我这边的核心数据并发问题,但在禁用缓存后,它工作正常。我也有同样的问题,起初我认为这是我这边的核心数据并发问题,但禁用缓存后,它工作正常