後立即更新我在cocos2d/Xcode中對象沒有更新
在我的代碼使用NSMutableArray的一個很奇怪的錯誤,我有一個包含對象的NSMutableArray一個
NSMutableArray *peasantArray;
和另一NSMutableArray中包含對象B
NSMutableArray *treeArray;
在預定的更新函數中,我調用了另一個函數,它本質上具有以下功能: 我會遍歷* peasantArray中的所有對象A,如果任何農民對象有一個變量var == GameEntityCommandIdling,我會修改對象B在第二個NSMutableArray * treeArray,
問題是,我注意到有時在我修改peasantArray中的對象A之後,修改後的變量(var)在對象A中被修改/更新之後,通過以預定方式輸出變量狀態;但如果我要在下一個時間表(1/30s)中再次遍歷NSMutableArray * peasantArray,我會再次找到具有較舊/未更新變量(var)的對象A,並且這會導致我的算法出錯,
然而,如果通過的NSMutableArray * peasantArray我環路小於1秒,每次我看到對象的變量(VAR)正確地作爲更新的變量值,
那麼,有沒有對如何限制快我可以遍歷NSMutableArray?
這裏有一些代碼段,我基本上只是提到,
NSMutableArray *peasantArray;
NSMutableArray *treeArray;
.....
peasantArray = [[[NSMutableArray alloc] initWithCapacity:1]retain];
for(int i = 0; i < 1; i++)
{
Peasant *A = [[Peasant alloc] init];
[peasantArray addObject:A];
}
....更新()
//內for (int i = 0;i < [peasantArray count];i++)
{
Peasant *A = [peasantArray objectAtIndex:i];
if (A.status == something)
{
printf("A.status is something\n");
A.status = sometingelse;
...
//update other things not related to this NSMutableArray or object
}
}
.....
因此錯誤是,有時我會的「A.status東西」多printf的,雖然只是它的一個應該打印,
我真的很感謝所有幫助,
感謝,
'status'是什麼類型?它是一個'NSString'嗎? – Anna 2012-01-11 13:15:31