申し訳ありませんが、あなたがしていることは私には無意味に思えます。オブジェクトを nil に設定することはできません。オブジェクトへの参照を nil に設定することしかできませんが、それは他の参照に影響を与えます。
NSObject * a = [[NSObject alloc] init];
NSObject * b = a;
[a release];
a = nil;
// b is NOT nil! b still points to the memory location where
// a used to be, which is now not valid anymore and using b
// for anything may crash your application!
「a」を配列に入れ、それを再び配列から削除すると、「a」の保持カウントが 1 減ります。その場合、まだゼロよりも大きい場合は "a" は解放されないか、ゼロの場合は解放されます。解放後に a への参照を nil に設定しても、まだ "a" を指している他の変数には影響しません。
したがって、NSArray が "a" への参照を配列から削除して解放した後 (その参照カウントがゼロになったため)、その参照を nil に設定していたとしても、まだ "a" を指しているインスタンス変数には影響しません。
あなたが何をしようとしているのかよくわかりませんし、確かに可能ですが、あなたはここで完全に間違った道を進んでいます。