Ich hab einen simplen Baum (Array) dieser hat Knoten welche ihrerseits auch wieder Unterknoten haben können, soweit alles klar.
Wenn ich einen Knoten aus dem Baum lösche welcher ein Root-Knoten ist, erhalte ich folgende Ausgabe:
	
	
	
Das passt, der Knoten ist das 3. Element im Baum.
Wenn ich allerdings einen Knoten lösche, der ein Leaf ist, sprich der in einem Knoten drin ist, erhalte ich das:
	
		
			
		
		
	
			Alles anzeigen
		
								
			
Hier mal den Code dazu
	
		
			
		
		
	
			Alles anzeigen
		
			
was mich stutzig macht ist, dass nachdem der Knoten gelöscht wurde, die Schleife lustig weiter durchlaufen wird, obwohl ich mit nem return rausspringe. Das aber nur wenn ich
einen Leaf lösche. Ich steh ein wenig auf den Schlauch.
									
									
								Wenn ich einen Knoten aus dem Baum lösche welcher ein Root-Knoten ist, erhalte ich folgende Ausgabe:
Das passt, der Knoten ist das 3. Element im Baum.
Wenn ich allerdings einen Knoten lösche, der ein Leaf ist, sprich der in einem Knoten drin ist, erhalte ich das:
PHP-Quellcode
- 2010-12-20 18:09:58.203 Prog[527:a0f] 0
- 2010-12-20 18:09:58.204 Prog[527:a0f] 1
- 2010-12-20 18:09:58.205 Prog[527:a0f] 2
- 2010-12-20 18:09:58.206 Prog[527:a0f] delete: Node
- 2010-12-20 18:09:58.207 Prog[527:a0f] 3
- 2010-12-20 18:09:58.208 Prog[527:a0f] 4
- 2010-12-20 18:09:58.208 Prog[527:a0f] 5
- 2010-12-20 18:09:58.209 Prog[527:a0f] 6
- ...
Hier mal den Code dazu
PHP-Quellcode
- - (IBAction)deleteItem:(id)sender
- {
- MyNode* item = [outlineView itemAtRow:[outlineView selectedRow]];
- MyNode* node = (MyNode*)sender;
- static MyNode* parentNode;
- if(!parentNode)
- parentNode=rootNode;
- static int i=0;
- for(MyNode* n in [node childs])
- {
- NSLog(@"%i",i++);
- if(n==item)
- {
- NSLog(@"delete: %@", [n itemName]);
- [parentNode deleteChild:n];
- return;
- }
- if ([n hasChildren])
- {
- parentNode=n;
- [self deleteItem:n];
- }
- }
- }
was mich stutzig macht ist, dass nachdem der Knoten gelöscht wurde, die Schleife lustig weiter durchlaufen wird, obwohl ich mit nem return rausspringe. Das aber nur wenn ich
einen Leaf lösche. Ich steh ein wenig auf den Schlauch.

 
									 
									