内存管理的理解

简介: 内存管理的理解

1.在非ARC的情况下,谁创建谁释放,当对对象进行alloc,new,retain,copy时,需要调用release或autorelease释放。当引用计数为0的时候,会调用dealloc方法销毁当前对象。

2.在ARC的情况下,任何强指针(strong,retain)指向的对象就会被销毁;任何弱指针(assign)指向的对象就不会被销毁;默认情况下对象都是强指针类型。

3.自动释放池是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来回收统一释放;内存池autoreleasepool是用于管理那些被声明为autorelease的对象,系统中有成千上万个内存池,系统内存不足时,系统会从栈中取最顶层的池子把引用计数为0的对象释放掉,收回的内存給当前应用程序使用。

自动释放池本身销毁的时候,池子里面所有的对象都会做一次release操作。

在使用block的时候,一定要注意不能在block里面直接对对象进行操作,而是要是要使用block或weak进行修饰,避免循环引用,造成内存泄漏。

相关文章
【Vue3】学习watch监视:深入了解Vue3响应式系统的核心功能(上)
【Vue3】学习watch监视:深入了解Vue3响应式系统的核心功能(上)
|
tengine Ubuntu 应用服务中间件
ubuntu/centos下载、安装与配置nginx
ubuntu/centos下载、安装与配置nginx
493 1
|
关系型数据库 MySQL 网络安全
|
7月前
|
存储 缓存 负载均衡
阿里云服务器实例选择指南:热门实例性能、适用场景解析对比参考
2025年,在阿里云的活动中,主售的云服务器实例规格除了轻量应用服务器之外,还有经济型e、通用算力型u1、计算型c8i、通用型g8i、计算型c7、计算型c8y、通用型g7、通用型g8y、内存型r7、内存型r8y等,以满足不同用户的需求。然而,面对众多实例规格,用户往往感到困惑,不知道如何选择。本文旨在全面解析阿里云服务器实例的各种类型,包括经济型、通用算力型、计算型、通用型和内存型等,以供参考和选择。
|
9月前
|
JSON 监控 API
获取1688商品SKU信息API接口及实战应用
在电商蓬勃发展的今天,数据成为宝贵的财富。1688作为国内知名批发采购平台,提供商品SKU信息API接口,可获取库存、价格、规格等关键数据,助力电商运营、市场分析和价格监控。本文介绍如何注册1688开放平台账号、创建应用并获取AppKey/AppSecret,申请API权限,使用Python实现接口调用,处理响应数据,并注意请求频率限制和错误处理。通过该接口,可为电商运营和数据分析提供有力支持。
373 2
|
12月前
|
数据可视化 Python
Matplotlib 教程 之 Seaborn 教程 2
Seaborn 是基于 Matplotlib 的 Python 数据可视化库,专注于统计图形的绘制,提供高级接口和美观的默认主题,支持散点图、折线图等多种图表类型,安装简便,可通过 `pip install seaborn` 完成。Seaborn 设计注重美观与易用性,内置多种主题如 darkgrid、whitegrid 等,便于用户快速生成高质量的统计图表。
124 3
|
安全 Java Maven
MapStruct使用
MapStruct使用
|
存储 缓存 监控
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(场景问题分析+性能影响因素)
351 0
|
安全 AndFix
swap/dapp/lp只涨不跌项目系统开发详细程序/案例开发/功能逻辑/需求设计/源码技术
Developing an LP (Liquidity Pool) system that only rises without falling requires the following steps
|
Java 数据库
ES深度分页问题解决方案
ES深度分页问题
468 0