1
-(CCNode *)createFieldNode:(NSMutableArray *)fieldArray{
CGSize winSize = [CCDirector sharedDirector].viewSize;
CCNode* stackNode= [CCNode node];
for (int i; i <=fieldArray.count; i++){
//itemP is previous item in array and itemC is current item in area based on index i
BPItem*itemP;
BPItem*itemC;
if(i!=0){
itemP=[fieldArray objectAtIndex:i-1];
itemC=[fieldArray objectAtIndex:i];
float stackWidth=arc4random()%200+50;
float stackHeight=itemP.position.y+itemP.contentSize.height;
itemC.position=ccp(stackWidth,stackHeight);
}
else{
itemC=[fieldArray objectAtIndex:i];
float stackWidth=arc4random()%200+50;
itemC.position=ccp(stackWidth,0);
}
//having trouble adding multiple nodes to stackNode
[stackNode addChild:itemC];
}
return stackNode;
}
我想從fieldArray將CCNodes添加到父CCNode「stackNode」。當我使用斷點時,我可以在索引0處添加CCNode,在索引1處添加CCNode。但是,程序在i = 2時崩潰。我收到的錯誤是:使用for循環將CCNodes添加到父CCNode
終止應用程序,由於未捕獲的異常'NSInternalInconsistencyException',原因:'子節點已添加到另一個節點。它不能再被添加'
崩潰之前「stackNode」有兩個孩子。我不是一個接一個地添加CCNode,因爲我有數百個不同的數組,並且有大約20個fieldArray.count。請幫助我解釋更多,如果我不清楚的話。