• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > iOS@autoreleasepool{}在ARC下的使用场景

iOS@autoreleasepool{}在ARC下的使用场景

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了autoreleasepool,ios arc,ios arc mrc,ios arc原理,ios等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: iOS @autoreleasepool {}在ARC下的使用场景
描述:

如题,ARC下已经不能使用NSAutoreleasePool对象,release/retain等方法,但是查了SDWebImage源码,看到 @autoreleasepool {}在ARC下还能用,请问,在ARC下 @autoreleasepool {}的作用是什么,如果跟NSAutoreleasePool是一样的,那么ARC不是会在代码执行完毕的时候自动回收的么,为什么还要多此一举呢?


解决方案1:

你写到了release/retain等方法, ARC 下你不能写这些方法,但ARC 会帮你在合适的地方插入这些方法。这将导致内存的延迟释放。autoreleasepool是为了 autorelease 这个方法,在对象的创建者没法销毁对象的时候,可以使用autorelease让autoreleasepool每隔一段时间检查该对象的引用计数,如果为0则释放对象。那么多个autoreleasepool的作用就是增加这种间隔,比原本autorelease释放的时间更早释放。

解决方案2:

ARC下用 @autoreleasepool {}主要还是为了避免内存峰值。简单点的说在{}中存放的对象会在稍后的某个时刻释放掉。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • iOS@autoreleasepool{}在ARC下的使用场景

相关文章

  • 2017-06-05 知之为知之不知为不知是知也类似知乎的赞赏功能,的开发流程
  • 2017-06-05 UIActivityViewController分享
  • 2017-06-05 iosTableView点击按钮在Cell中展开一个View显示隐藏的问题类似于微信朋友圈点赞、评论效果
  • 2017-06-05 如何实现addChildViewController后,横屏旋转只让子控制器View旋转,父控制器视图不变
  • 2017-06-05 重庆自考管理系统web请问ios中,web照相图片的自动旋转是什么原因
  • 2017-06-05 问天问地问自己iostcpsocket操作问题
  • 2017-06-05 新建viewController的时候自带的xib,代码打印宽高,为什么和界面实际显示不一样?
  • 2017-06-05 chromeframe关于iOS创建自己的framework
  • 2017-06-05 webview加载h5页面底部出现网页端没有的广告怎么解决?
  • 2017-06-05 IOS如何实现软键盘出现的时候,窗口的高度减少?(类似于聊天的窗口)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • iOS导航栏NavigationBar中titleView如何拉伸到两端?
    • WebApp和MobileApp在新浪微博开放平台公用一个AppKey可以么?
    • ios在网页中观看视频或者跳转至它们相应的APP中观看会被AppStore拒绝吗
    • 返回上一页如何让栈中的页面总是返回到固定页面?
    • 移动手机电视客户端现在移动端手机游戏已经不用c++开发了吗?
    • IOSswift非底部标签页tabs如何做?
    • cocos2d中多个CCSprite循环播放CCMoveBy动画的问题
    • 方法不能退出并返回数据
    • ReactNative程序IOS模拟器显示太大,怎么调整?
    • afnetworking返回json以后怎么解析?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有