クラスが iOS でインスタンス化されているかどうかを確認しようとしています。
その必要はありません。Objective-C を使用すると、悪影響を与えることなく nil にメッセージを送ることができます。さらに、サブビューは内部 NSMutableArray に追加されるため、nil ポインターをそれ自体に追加することは許可されないため、サブビューを nil にすることはできません。
そのため、それがある種のUIViewであることはすでにわかっていますが、他のクラスを確認するにはどうすればよいですか?
すべての UIView (および関連するサブクラス) をリリースしようとしている場合は、基本クラス (UIView) が removeFromSuperview を宣言するものであるため、比較をそれほど具体的にする必要はありません。これにより、割り当て解除が解決されます。あなたの質問の一部。ビューがそのスーパービューから削除されると、参照カウントが 1 つ減ります。
もう少し文脈を理解したので、あなたが求めていることは些細なことです。ARC を使用している場合、このスニペットは type のすべてのオブジェクトを検索しCustomClass
、それらを nil に設定します。
for (NSObject *object in self.someCollection) {
if ([object isKindOfClass:[CustomClass class]])
object = nil;
}
MRC を使用している場合 (使用している場合、一体何が問題なのですか?)、実際には、それがアクティブなインスタンスであることを確認する必要があります。
for (NSObject *object in self.someCollection) {
if ([object isKindOfClass:[CustomClass class]] && object != nil) {
[object release];
}
}