objective c 正在访问已释放的对象

objective c Accessing deallocated object

如果执行以下代码会发生什么?

NSData* data =  [myArray objectAtIndex:i] // assigning from array
[myArray removeAllObjects]; // removing all objects from array.
[self doSomething:data]; // this method will execute some operations with data

数据是否变成了可能导致 EXC_BAD_ACCESS 崩溃的僵尸对象?

不,它不会导致崩溃。您的 data 只是一个指针,保存着存储 NSData 数据的相同数字(虚拟)内存地址。如果其中一个指针设置为指向 nil,或指向与此相关的其他一些数据,它不会触发 NSData 或另一个指针的任何更改。