滿級代碼在這裏:http://pastebin.com/rdjDGLJSif語句不返回任何東西
編輯:從原來的海報採取了最新的代碼片斷評論
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");
}
}
}
原貼:
if語句我使用的是與一個NString使用以下代碼:
- (void) initSprite {
for(int i = 0; i<spriteNumber; i++) {
if (spriteType == @"typeOne") {
NSLog(@"repeat");
}
}
}
只要字符串'spriteType'具有'typeOne'的內容,它應該記錄「重複」'spriteNumber'的次數,但沒有任何反應。它不記錄「重複」,但它也沒有任何錯誤。字符串'精靈類型'的內容肯定是'typeOne',spriteNumber> 0。
可以做些什麼來解決這個問題?
編輯:我現在已經嘗試了這樣的代碼:
- (void) initSprite {
for(int i = 0; i<spriteNumber; i++) {
if ([spriteType isEqualToString:@"typeOne"]) {
NSLog(@"repeat");
}}}
它返回一個錯誤,EXC_BAD_ACCESS
你確定你正確地發佈了代碼嗎?它缺少'[spriteType isEqualToString:@「typeOne」]' – borrrden
@borrrden周圍的括號,我發佈了它與絞線代碼,即時通訊編輯知道。 – akuritsu
@akuritsu,跟蹤spriteType是否在你的記憶中...... EXC_BAD_ACCESS只發生你的對象不在記憶中,那麼你也試圖訪問它。 – Tirth