这是我的问题的一些背景......使用 iOS 5 作为我的 iPhone 应用程序的目标,ARC 开启:
我有一个具有UINavigationController
. 堆栈上有多个视图被推到顶部。显示的最终视图是UIWebView
带有 Google 图片的网站,用户可以选择一张图片并将其发送回UIImageView
导航堆栈中先前的视图。然后用户可以点击返回,然后在上一个视图上点击保存UIBarButton
以将图像本地保存在他们的设备上。这是堆栈的样子:
MainView -> DetailsView(保存
UIBarButton
在右上角)-> ImageDisplayView -> WebView(加载了 Google 图片网站)
问题是,当用户使用 Google 图片移动设备上的查看完整图片按钮从 Google 图片(比如说 5MB 的图片)中选择一个大图片时,会引发内存警告并释放其下方的视图。因此,当用户使用 Save 按钮返回 DetailsView 时,Save 按钮现在消失了。这是因为didReceiveMemoryWarning
被称为。
所以我的问题是......
为什么在嵌入式 UIWebView 中显示 5MB 图像时会调用内存警告?
如何防止内存警告在我的导航堆栈中导致问题(如删除 UIBarButton 视图)较低?
是否有任何提示/技巧,任何人都知道在 iPhone 应用程序中从 Google 图片手机正确获取全尺寸图片?
要自己尝试这个问题,请UIWebView
在一个空白应用程序中创建一个,然后将 Google 图片网站加载到其中。将其安装在您的设备上(3GS 或更低版本会使问题出现得更快),然后将完整图像加载到浏览器中或从浏览器中加载出来……您最终会在调试控制台中收到警告。