后立即更新我在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