我正在iPhone上开发,而且我错过了一些关于在NSMutableArray中存储对象的东西 - 我做错了什么,我该如何处理?
代码的相关部分是
我有一个定义的对象Entity,它直接从NSObject继承.在我的GLView类中,我想定义一个这样的数组 - 所以GLView.h
@interface GLView : UIView
{
BOOL controllerSetup;
// Entity etc - first development task it to get one up
NSMutableArray *arrEntities;
}
@property(nonatomic, assign) NSMutableArray *arrEntities;
Run Code Online (Sandbox Code Playgroud)
并且在drawView函数的主体中 - 由timer事件多次调用 - 我分配数组,并且,对于初始开发,只需要一个Entity对象并将其添加到数组中
- (void)drawView
{
if(!controllerSetup) { // initialize on first call
[controller setupView:self];
controllerSetup = YES;
arrEntities = [NSMutableArray array];
Entity* thisEntity = [[Entity alloc] initEntity];
[arrEntities addObject:thisEntity];
}
Entity *entity = [arrEntities objectAtIndex:0];
[entity tickEntity:0.1];
}
Run Code Online (Sandbox Code Playgroud)
我的理解是,在drawViewNSMutableArray 的第一次调用将被设置并且Entity的实例被添加到它,然后在正文中指向存储在数组中的实体的第一副本的指针被检索并且这被操纵(显然我打算添加更多,并在以后循环它们).
然而,在程序的第一次调用中,一切正常,objectAtIndex …