Я обновился до cocos2d с 0.99.4 до 0.99.5. В то время как это было на более старой версии, у меня был рабочий список рекордов, и я смог добавить NSDictionary в NSMutableArray без проблем.
Теперь, когда я обновил, он не добавит переменную NSDictionary ScoreDetails в мой список результатов NSMutableArray. Вот мой код:
StatsManager.h
@interface StatsManager : NSObject {
NSMutableArray *scoreList;
NSUserDefaults *saveHighScore;
NSMutableArray *printableScoreList;
//NSMutableArray *scoreListTestOne;
float highScoreHelloWorld;
}
StatsManager.m
-(void)setHighScore:(float)highScore nameStrings:(NSString*)nameString {
NSNumber *newHighScore = [NSNumber numberWithFloat:highScore];
NSLog(@"%@ highScore", newHighScore);
NSDictionary *scoreDetails = [NSDictionary dictionaryWithObjectsAndKeys:nameString, @"name", newHighScore, @"score", nil];
NSLog(@"%@", scoreDetails);
//NSMutableArray *testTwo = [[NSMutableArray alloc] init];
[scoreList addObject:scoreDetails];
NSLog(@"scoreList %@", scoreList);
//[scoreListTestOne addObject:scoreDetails];
//NSLog(@"scoreListTestOne %@", scoreListTestOne);
//sort
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"score" ascending:NO];
[scoreList sortUsingDescriptors:[NSArray arrayWithObject:sort]];
printableScoreList = scoreList;
NSLog(@"printableScoreList %@", printableScoreList);
//NSLog(@"scoreListTestOne %@", scoreListTestOne);
}
Строка, о которой идет речь,
[scoreList addObject:scoreDetails];
Я создал локальную переменную NSMutableArray в функции setHighScore и попытался добавить к ней ScoreDetails, и это сработало. но почему это не работает, как я уже кодировал выше?
Я размещаю свой счет здесь:
@implementation StatsManager
static StatsManager *_sharedStatsManager = nil;
-(id)init {
scoreList = [[NSMutableArray alloc] init];
//playerNames = [[NSMutableArray alloc] init];
//playerScores = [[NSMutableArray alloc] init];
printableScoreList = [[NSMutableArray alloc] init];
//listOfScoresTest = [[NSMutableDictionary alloc] initWithCapacity:5];
/*if ([scoreList count] == 0) {
for (int i = 0; i < 5; i++) {
[scoreList addObject:[NSNumber numberWithFloat:0.00]];
}
}*/
return [super init];
}
Я должен также упомянуть, что я создал новый проектB и перенес мои файлы / изображения из моего старого проекта A в новый, потому что старый не будет компилироваться больше из-за некоторой повторяющейся ошибки. Но я снова «очистил все цели», и это сработало, но у меня та же проблема, что и у моего нового проектаB