完全なクラス コードはこちら: http://pastebin.com/rdjDGLJS
編集:元のポスターのコメントから取得した最新のコード スニペット
NSMutableString *spriteType;
- (void) pickSpriteType {
randomSpriteNumber = arc4random() % 2+1;
switch (randomSpriteNumber) {
case 1:
spriteType = [NSMutableString stringWithFormat:@"typeOne"];
break;
case 2:
spriteType = [NSMutableString stringWithFormat:@"typeTwo"];
break;
}
}
- (void) findSpriteNumber {
levelNumberString = [NSMutableString stringWithFormat:@"%d",levelNumber];
NSString *path = [[NSBundle mainBundle] pathForResource:@"plist_enemies" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
spriteNumber = [[[dict objectForKey:spriteType] objectForKey:levelNumberString] intValue];
}
- (void) initSprite {
[self moveUp];
for(int i = 0; i<spriteNumber; i++) {
if ([spriteType isEqualToString:@"typeOne"]) {
NSLog(@"repeat");
}
if ([spriteType isEqualToString:@"typeTwo"]) {
NSLog(@"repeat");
}
}
}
元の投稿:
次のコードを使用して、NString で if ステートメントを使用しています。
- (void) initSprite {
for(int i = 0; i<spriteNumber; i++) {
if (spriteType == @"typeOne") {
NSLog(@"repeat");
}
}
}
文字列「spriteType」の内容が「typeOne」である限り、「繰り返し」「spriteNumber」の回数をログに記録する必要がありますが、何も起こりません。「繰り返し」はログに記録されませんが、エラーもありません。文字列 'sprite type' の内容は間違いなく 'typeOne' で、spriteNumber > 0 です。
この問題を解決するにはどうすればよいですか?
編集:私は今、次のようなコードを試しました:
- (void) initSprite {
for(int i = 0; i<spriteNumber; i++) {
if ([spriteType isEqualToString:@"typeOne"]) {
NSLog(@"repeat");
}}}
エラー、EXC_BAD_ACCESS を返します。