- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
注意:我看到前面有人问了几个问题,但似乎没有一个能澄清我的疑问。
在 iOS6 之前,所有 socket ,图像和声音等大量资源在 viewDidUnload
中设置为 nil
。在 iOS6 之后,情况不再如此,因为 View 不再被卸载。系统调用 didReceiveMemoryWarning
,这是放置此类资源中和的新推荐位置。
那么如果代码需要支持iOS4以上的一切怎么办?在运行 iOS 4 和 5 的设备上,viewDidUnload
仍会被调用。在运行 iOS6 的设备中,只有 didReceiveMemoryWarning
会被调用。
这是否意味着我必须在这两个地方复制代码?在两个地方都调用一个通用方法是一种好方法吗?请提供您的意见或方法,说明业界是如何处理这种情况的。
最佳答案
是的,如果您支持 6.0 之前的 iOS 版本,您应该在 viewDidUnload
中删除任何依赖于 View 及其控件的内容。这是设备上运行的 iOS 的功能。显然,如果设备运行的是 6.0 或更高版本,则不会卸载 View 。无论如何,您应该在 didReceiveMemoryWarning
中清除缓存和类似内容。
您不应复制这两种方法中的代码,因为那是不必要的。在 viewDidUnload
中执行与 View 相关的清理,在 didReceiveMemoryWarning
中执行与缓存相关的清除。而且,最重要的是,不要从 viewDidUnload
复制特定于 View 的清理(例如将 IBOutlet
引用设置为 nil
,这是 Interface Builder 用来添加到我们的代码)到 didReceiveMemoryWarning
中。如果您这样做并且在 iOS 6 中收到内存警告,您将丢失未删除的 View 的 IBOutlet
引用。
参见 iOS 6 - viewDidUnload migrate to didReceiveMemoryWarning?
关于ios - viewDidUnload 弃用和向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14470798/
这不是我的专业领域,所以我希望问的是正确的问题。 我们有一台滚动租用的服务器。旧服务器是32位windows服务器,新服务器是64位windows 2008 R2 SP1。 其中一个 Web 应用程序
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我已将 Oracle 数据库从 10g 迁移到 12c。从 12c 开始,oracle 不支持 PLSQL_V2_COMPATIBILITY 参数。 该参数用于: https://www.safari
开发环境db server为SqlServer 2005(开发版) 有什么方法可以确保我的 SQL 查询将在 SqlServer 2000 中运行? 此数据库设置为兼容级别“SQL Server 20
我有一个这种形式的类: public class Foo implements Serializable { private static final long serialVersionUI
我有以下代码来隐藏状态栏,取自 http://developer.android.com/training/system-ui/status.html和 Hide status bar android
我正在尝试测试 .prop() 是否方法存在于当前包含的 jQuery 中(出于兼容性原因): if(typeof $.prop === 'function') 我期望上面的条件是 true对于 jQ
当收到新消息时,我在项目中使用BroadcastChannel更改所有选项卡的标题。 问题在于它仅适用于chrome和firefox。因此,我决定使用localStorage创建一个Broadcast
我正在使用一个函数通过 FTP 将一个文件上传到我的服务器。这是我的代码并且工作正常但是创建的文件 example.json 不兼容 UTF8,因为它有 Atlético 而不是 Atlético 例
我正在使用兼容性类来构建用户代理字符串: public abstract class Compatibility { private static int sdkInt = 0; pr
我需要实现一个 C 例程来(解)压缩 gzip 格式的文件。 谁能举个例子? 我试过 zlib,但它似乎不兼容。 谢谢。 最佳答案 zlib 与 gzip 文件完全兼容,但您需要确保您使用的是面向 g
我正在使用以下 CSS 代码,它与 Chrome 完美兼容,但与 IE 浏览器不兼容 .collapse{ display:block; } .collapse + input[type="c
我的应用程序以 android Sdk 的 v10 为目标,但具有 minSdkVersion 的 v6。默认情况下,“match_parent”属性将用于宽度或高度。我应该为 fill_parent
我正在阅读有关 dynamic_cast 的内容,然后我遇到了以下语句 ( from cplusplus.com ): Compatibility note: This type of dynamic
我正在尝试在 Linux 下使用 QtCreator 构建一个用 VS 2008 编写的项目,但我遇到了很多错误: /home/ga/dev/CppGroup/MonteCarlo/main.cpp:
因此,我正在构建一个网站,用户可以在该网站上上传观看视频。我正在使用标准的 HTML5 视频播放器 ( ... )目前,我使用多个来源:MP4、OGG 和 WEBM,以实现跨浏览器兼容性 由于维护三
mozilla 和其他浏览器是否有类似-webkit-box-reflect 的属性?我无法在谷歌上找到哪些其他浏览器支持这个。因此,如果有人可以告诉我或给我链接,那就太好了。 最佳答案 这不仅可以使
我定义了一个自定义的 ValidateSet 参数属性,如下所示: Class MyValidValuesAttribute : System.Management.Automation.IValid
我使用 .net 4.0、linq 等编写 winforms 应用程序。它可以在带有 .net 2.0 的机器上运行吗? 最佳答案 不,不会。为 Framework 4.0 版编译的应用程序将要求该框
我如何专门检查 @keyframes translate3d 动画 与浏览器的兼容性? 请不要关闭这个问题,因为在问这个问题之前我已经尝试了很多 stackoverflow 解决方案。 我想检查我的网
我是一名优秀的程序员,十分优秀!