在看似没有错误的地方崩溃

时间:2012-05-05 19:50:52

标签: objective-c struct objective-c++

我刚刚削减了大量的错误,现在我的代码编译得很好,但它总是在我创建的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];
}

1 个答案:

答案 0 :(得分:1)

这里有两件事情中的一件或两件都错了。 entityArray可能不是NSMutableArray,而是NSArray,在这种情况下,您会收到“无法识别的选择器”错误。

修复后,您需要修复索引。您无法在对应于NSMutableArray的索引处将对象插入<{1}},因为最后一个有效的插入索引是count。您应该使用count-1在数组的末尾放置一些东西:

addObject: