1

大量のエラーを削除したところ、コードは正常にコンパイルされましたが、作成した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];
}
4

1 に答える 1

1

ここでは、2つのことの一方または両方が間違っています。ではentityArrayなく、である可能性があります。その場合、「認識されないセレクター」エラーが発生します。NSMutableArrayNSArray

それが修正されたら、インデックスを修正する必要があります。挿入に最後に有効なインデックスは。であるため、オブジェクトをそのに対応するインデックスのに挿入することはできません。配列の最後に何かを置くために使用する必要があります。NSMutableArraycountcount-1addObject:

NSValue *tmp = [NSValue valueWithBytes:&tmpEntity objCType:@encode(struct Entity)];

[entityArray addObject:tmp];
于 2012-05-05T20:07:02.417 に答える