假设我们有一个 Controller A,它有两个强大的属性 B 和 C。 B和C有一种共同的属性D。关系如下:
如果我通过将 A 中的属性 C 设置为 nil 来移除 A 和 C 之间的键,那么 C 会被释放还是会一直存在,直到 A 和 B 或 B 和 D 之间的键被移除为止?
最佳答案
假设 D 对 C 没有强引用,C 将被删除。由于没有剩余的强引用,因此它被释放。
您的图表将这些关系表示为双向关系,但请记住,属性只是一种单向关系;仅仅因为 C 有一个 D 指针并不意味着 D 了解有关 C 的任何信息。
关于automatic-ref-counting - 弧强属性和内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17470588/