I decided to start using
- -[__NSArrayM removeAllObjects]: message sent to deallocated instance 0x625e4e0
Okay so I was being an idiot!
I was doing:
[myArray removeAllObjects]; myArray = someOtherObject.someArray;
therefore resetting the pointer to some other object. I've now changed it to this:
[self.myArray removeAllObjects]; [self.myArray addObjectsFromArray:someOtherObject.someArray];
And it's now okay. I'm an idiot! Sorry all, thanks for your help!