assign修饰对象类型会怎样?
2024-10-06 19:28:00
首先我们需要明确,对象的内存一般被分配到堆上,基本数据类型和oc数据类型一般被分配在栈上。
如果用assign修饰对象,当对象释放后(因为不存在强引用,离开作用域对象内存可能被回收),指针的地址还是存在的,也就是说指针并没有被置为nil,下次再访问该对象就会造成野指针异常。对象是分配在堆上的,堆上的内存由程序员手动释放。
assign修饰基本数据类型或OC数据类型,因为基本数据类型是分配在栈上的,由系统分配和释放,所以不会造成野指针。
最新文章
- SQL Server 中的逻辑读与物理读
- Effective Java 读书笔记之一 创建和销毁对象
- CentOS 7安装Mysql并设置开机自启动
- [转]relative、absolute和float
- myeclipse6.0 序列号生成器源码
- javascript模板方法模式
- 1-3-2 Windows应用程序常用消息
- ubuntu14.04 安装 StudioZend12
- 【ASP.NET Web API教程】2 创建各种Web API
- Oracle dump 分析secondary key
- Python自学笔记-with详解
- Saiku去掉登录模块
- python安装pbkdf2 遇到错误TypeError: __call__() takes exactly 2 arguments (1 given)
- docker技术之基本命令
- SpringBoot使用Mybatis-PageHelper
- 输入年月日判断是当年第几天(if判断)
- wait()和notify()的理解与使用
- spring cloud: Hystrix(二):简单使用@HystrixCommand的commandProperties配置@HistrixProperty隔离策略
- hdu-1041(大数模板)
- 获取最后插入的id另外方法