美文网首页
为什么assign不能用于修饰对象

为什么assign不能用于修饰对象

作者: 化二缺 | 来源:发表于2019-12-19 09:18 被阅读0次

    首先我们需要明确,对象的内存一般被分配到 上,基本数据类型和oc数据类型的内存一般被分配在
    如果用assign修饰对象,当对象被释放后,指针的地址还是存在的,也就是说指针并没有被置为nil,从而造成了野指针。因为对象是分配在堆上的,堆上的内存由程序员分配释放。而因为指针没有被置为nil,如果后续的内存分配中,刚好分配到了这块内存,就会造成崩溃
    而assign修饰基本数据类型或oc数据类型,因为基本数据类型是分配在栈上的,由系统分配和释放,所以不会造成野指针

    相关文章

      网友评论

          本文标题:为什么assign不能用于修饰对象

          本文链接:https://www.haomeiwen.com/subject/kwzpnctx.html