完整的类代码在这里: 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");
}
}
}
它应该记录“重复”“spriteNumber”的次数,只要字符串“spriteType”的内容为“typeOne”,但什么也没有发生。它不记录“重复”,但也没有任何错误。字符串'sprite type'的内容肯定是'typeOne',并且spriteNumber > 0。
可以做些什么来解决这个问题?
编辑:我现在尝试了这样的代码:
- (void) initSprite {
for(int i = 0; i<spriteNumber; i++) {
if ([spriteType isEqualToString:@"typeOne"]) {
NSLog(@"repeat");
}}}
它返回一个错误,EXC_BAD_ACCESS