我想了解 Swift 和 objective-c 如何处理 nil 引用的传递。我知道我不能将 nil 添加到 Objective-C 可变数组中。
nil在以下场景中是如何处理的:
- Swift 类是传递给 Objective-C 的弱引用观察者 类
- Objective-C 将对 Swift 类的引用保存在一个数组中
- Swift 类被释放,它的弱引用变为 nil
- Objective-C 现在有一个数组,其中一个元素指向 nil
Objective-C 类是继续运行,还是在尝试遍历数组并获取 nil 引用时崩溃?
最佳答案
除非您使用 NSPointerArray
,否则当您将对象添加到数组时,该数组将持有对它的强引用,从而防止对象被释放。
只有在对象从数组中移除,或者数组本身被释放后,对象才有资格被释放。
这意味着数组不能保留一个 nil 引用。
关于iOS Swift 到 Objective-C 如何将弱引用传递给数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52003986/