ツリーで一致するオブジェクトを見つけようとしているので、ObjC高速列挙を使用しています。問題は、私のメソッドが一致する値を見つけて戻り行に到達し、値をnilに設定して、反復を続けることです。これが私の方法です:
+ (INONode *)findByUUID:(NSString*)uuid fromRootNode:(INONode*)node
{
for (INONode * childNode in [node children]) {
if ([[node uniqueID] isEqualToString:uuid]) {
break;
}
else {
[INONode findByUUID:uuid fromRootNode:childNode];
}
}
return node;
}
ブレークポイントを設定してコードの実行を追跡すると、ブレークがヒットし、リターン行に移動して、反復を続行するステートメントに戻ります。ここで何が欠けていますか?