027 对象删除-API - 图1

027 对象删除-API - 图2027 对象删除-API - 图3

虽然3、2都有人管着,但是1没有,没有指向它的指针,是方法里的局部变量。方法执行完毕后就被干掉,销毁操作就会生效。

027 对象删除-API - 图4

改进:

在window加个属性:

027 对象删除-API - 图5

问题 del有用不

027 对象删除-API - 图6这样能不能把obj2删除?

del obj2代表什么意思?

想当于临时栈里面有个obj2,指向着堆里面的真正的obj2.

del只是删掉了连接的线,obj2的真实对象还在,有人在引用他。

027 对象删除-API - 图7

027 对象删除-API - 图8

问题2 遗留问题,解除父子关系? 方法走完,临时变量也释放了

为什么用deleteLater了,打印孩子还有呢?

027 对象删除-API - 图9

打出了一个结果?

因为是deleteLater,later的意思就是稍后的意思。不是立刻干掉,是下一个循环才干掉。

027 对象删除-API - 图10

从打印结果也可以看出,他是先打印了孩子,才打印释放的。说明027 对象删除-API - 图11这行代码后没有立马删除。

027 对象删除-API - 图12

这样删不掉的