Does an array or dataset store pointers or actual objects? If it is a pointer, then, say array1 = array2; Would that make array1 point to array2? Or would it make array1 point to the objects that array2 points to? So if you went: Code: array1 = array2; array2 = nil; Therefore array1 would also be equal to nil, or will array1 point to the objects that array2 used to point to? I ask this as Code: array1 = [NSMutableArray arrayWithArray: array2]; Leaks ridiculous amounts of memory.