我刚刚削减了大量的错误,现在我的代码编译得很好,但它总是在我创建的createEntity方法中崩溃。看似没有任何问题,但是有人可以帮助我吗?有什么建议吗?
-(void)createEntityWithX:(int)newEntityX andY:(int)newEntityY withType:(int)newEntityType withWidth:(int)newEntityWidth andLength:(int)newEntityLength atSpeed:(int)newEntitySpeed
{
Entity tmpEntity;
tmpEntity.entityX = newEntityX;
tmpEntity.entityY = newEntityY;
tmpEntity.entityLength = newEntityLength;
tmpEntity.entityWidth = newEntityWidth;
tmpEntity.entityType = newEntityType;
tmpEntity.entitySpeed = newEntitySpeed;
int arrayAmount = [entityArray count];
NSValue *tmp = [NSValue valueWithBytes:&tmpEntity objCType:@encode(struct Entity)];
[entityArray insertObject:tmp atIndex:arrayAmount];
[tmp release];
}
答案 0 :(得分:1)
这里有两件事情中的一件或两件都错了。 entityArray
可能不是NSMutableArray
,而是NSArray
,在这种情况下,您会收到“无法识别的选择器”错误。
修复后,您需要修复索引。您无法在对应于NSMutableArray
的索引处将对象插入<{1}},因为最后一个有效的插入索引是count
。您应该使用count-1
在数组的末尾放置一些东西:
addObject: