0

取得する予定のオブジェクトを完全に取得できない for in ループがあります。

MainLayerclassの子を追加する CCLayer クラスがありMyUniqueClassます。ただし、すべてのMyUniqueClassオブジェクトを取得しようとすると、他の CCNode オブジェクトも取得されます。これが私がすることですMainLayer

for (MyUniqueClass *mUC in self.children){

        NSLog(@"%@", mUC); //Here I get all kinds of objects 

}
4

2 に答える 2

4

CCNode オブジェクトが存在する理由を突き止めてみてください。どういうわけか、彼らは子として追加されました。

または、それを無視して、これを実行して他のノード クラスを除外します。

Class uniqueClass = [MyUniqueClass class];
for (MyUniqueClass *mUC in self.children)
{
    if ([mUC isKindOfClass:uniqueClass])
    {
        NSLog(@"%@", mUC);
    }
}
于 2012-08-02T17:19:54.883 に答える
2

MyUniqueClass *ループ変数を asと入力すると、ループはそのクラスに属するオブジェクトのみをカバーすると信じているようです。それは、列挙がどのように高速に機能するかではありません。型チェッカーとはまったく対話しません。ループ変数に静的型を指定すると、コンパイラはループ本体で行うことの型チェックを実行できるようになり (たとえば、誤ってテキスト ビューのようなテキスト フィールドを使用した場合に警告を発することができます)、ドット構文でオブジェクトのプロパティにアクセスします。特定のクラスのオブジェクトのみを操作したい場合は、LearnCocos2D で示されているように、ループ本体を明示的にチェックインする必要があります。

于 2012-08-02T17:36:04.230 に答える