当前位置: 首页 > news >正文

cpa诱导网站怎么做/广西壮族自治区

cpa诱导网站怎么做,广西壮族自治区,重庆市人民政府网,高端企业网站设计公司分析 在iOS4和iOS5系统中,当内存不足,应用收到Memory warning时,系统会自动调用当前没在界面上的ViewController的viewDidUnload方法。通常情况下,这些未显示在界面上的 ViewController是UINavigationController Push栈中未在栈顶…

 

分析
在iOS4和iOS5系统中,当内存不足,应用收到Memory warning时,系统会自动调用当前没在界面上的ViewController的viewDidUnload方法。通常情况下,这些未显示在界面上的 ViewController是UINavigationController Push栈中未在栈顶的ViewController,以及UITabBarViewController中未显示的子ViewController。这 些View Controller都会在Memory Warning事件发生时,被系统自动调用viewDidUnload方法。

 

在iOS6中,由于viewDidUnload事件在iOS6下任何情况都不会被触发,所以苹果在文档中建议,应该将回收内存的相关操作移到另一个 回调函数:didReceiveMemoryWarning 中。但是如果你仅仅是把以前写到viewDidUnload函数中的代码移动到didReceiveMemoryWarning函数中,那么你就错了。以 下是一个 错误的示例代码 :

1.- (void)didReceiveMemoryWarning {
2.    [super didReceiveMemoryWarning];
3.    if([self isViewLoaded] && ![[self view] window]) {
4.        [self setView:nil];
5.    }
6.}

 
这篇文章解释了iOS6不推荐你将view置为nil的原因(链接打开需要FQ), 翻译过来如下:

1.UIView有一个CALayer的成员变量,CALayer是具体用于将自己画到屏幕上的。如下图所示:

2.CALayer是一个bitmap图象的容器类,当UIView调用自身的drawRect时,CALayer才会创建这个bitmap图象类。

 

3.具体占内存的其实是一个bitmap图象类,CALayer只占48bytes, UIView只占96bytes。而一个iPad的全屏UIView的bitmap类会占到12M的大小!

 

4.在iOS6时,当系统发出MemoryWarning时,系统会自动回收bitmap类。但是不回收UIView和CALayer类。这样即回收了大部分内存,又能在需要bitmap类时,通过调用UIView的drawRect: 方法重建。

 

内存优化
另外文章中还提到苹果的操作系统对此做的一个内存优化技巧,解释如下:

 

当一段内存被分配时,它会被标记成“In use“, 以防止被重复使用。当内存被释放时,这段内存会被标记成”Not in use”,这样,在有新的内存申请时,这块内存就可能被分配给其它变量。

 

CALayer包括的具体的bitmap内容的私有成员变量类型为CABackingStore, 当收到MemroyWarning时, CABackingStore类型的内存区会被标记成volatile类型(这里的volatile和 C以及Java语言的volatile不是一个意思),volatile表示,这块内存可能被再次被原变量重用。

 

这样,有了上面的优化后,当收到Memoy Warning时,虽然所有的CALayer所包含的bitmap内存都被标记成volatile了,但是只要这块内存没有再次被复用,那么当需要重建 bitmap内存时,它就可以直接被复用,而避免了再次调用 UIView的 drawRect: 方法。

 

总结
所以,简单来说,对于iOS6,你不需要做任何以前viewDidUnload的事情,更不需要把以前viewDidUnload的代码移动到 didReceiveMemoryWarning方法中。

 

引用WWDC 2012 中的一段话来给viewDidUnload说再见:

The method viewWillUnload and viewDidUnload. We’re not going to call them anymore. I mean, there’s kind of a cost-benifit equation and analysis that we went through. In the early days, there was a real performance need for us to ensure that on memory warnings we unloaded views. There was all kinds of graphics and backing stores and so forth that would also get unloaded. We now unload those independently of the view, so it isn’t that big of a deal for us for those to be unloaded, and there were so many bugs where there would be pointers into。

 

 参考链接

  • View Controller Lifecycle in iOS 6
  • CALayer Internals: Contents

转载于:https://www.cnblogs.com/zhangjie/archive/2013/05/20/3088386.html

http://www.jmfq.cn/news/5100445.html

相关文章:

  • 网站制作目的/百度app官方正式版
  • 做钓鱼网站违法吗/html网页制作步骤
  • 有没有做羞羞的网站/关键词歌词完整版
  • 简单电子商务网站开发/企业网络推广方案
  • 石家庄百度关键词搜索/知名的搜索引擎优化
  • 百度站长平台快速收录怎么弄/企业网站模板免费
  • 网页游戏宣传片排行榜/网站seo应用
  • 时间轴网站设计/搜索引擎关键词快速优化
  • wordpress 管理登录/平原县网站seo优化排名
  • 做动态网站的总结/互联网广告优化
  • 天气预报网站开发/广州品牌营销服务
  • 倒v是网站设置的还是作家自己/seo整站优化技术培训
  • 软件应用下载安装/seo网站推广与优化方案
  • 内部网站开发/域名seo查询
  • 电子商务网站规划与建设摘要/网站关键词搜索排名
  • 江西医疗网站建设/百度seo公司一路火
  • 天津建设工程信息网客服电话/信息流优化师面试常见问题
  • 自家电脑做网站服务器w7花生壳/营销策划与运营团队
  • 网站建设方案ppt模板/自媒体有哪些平台
  • 优秀网站建设设计/网络营销公司哪家好
  • 网站开发工具简介/百度注册页面
  • 做美女网站流量/疫情最新消息今天封城了
  • 网站建设要咨询哪些内容/百搜科技
  • 潍坊网站建设服务/seo大牛
  • 专门做搜索种子的网站/网络软件开发
  • 如何做镜像网站/seo文章优化技巧
  • 做网站如何让用户注册/阿里指数官网最新版本
  • 怎么做文学动漫网站/刷关键词指数
  • 哈尔滨制作手机网站/seo深圳培训班
  • 做网站的计划书/广州市新闻发布