Я шел по этому часу и не могу найти проблему.
У меня есть массив результатов, которые я сохраняю в конце игры в базовой модели данных. После сохранения, когда я возвращаюсь в viewcontroller с высокими оценками, я загружаю оценки из базовых данных и сортирую массив, используя следующую функцию, где массив показателей представляет собой NSMutableArray с моими 10 высокими показателями
[self.scoresArray sortUsingFunction:firstNumSort context:@selector(totalScore)];
//function to sort high scores in the array
NSInteger firstNumSort(id str1, id str2, void *context) {
static int counter = 0;
NSLog(@"counter = %d", counter);
counter++;
//NSLog(@"should be sorting");
int num1 = [str1 totalScore];
int num2 = [str2 totalScore];
if (num1 > num2) {
NSLog(@"%@ is greater than %@", num1, num2);
return NSOrderedAscending;
}
else if (num1 < num2){
NSLog(@"%@ is less than %@", num1, num2);
return NSOrderedDescending;
}
else {
NSLog(@"%@ is the same as %@", num1, num2);
return NSOrderedSame;
}
}
Это всегда помещает последнюю запись счета в верхней части списка, независимо от его значения ?? Самое странное, что когда я перезагружаю свое приложение, та же функция размещает все оценки в правильном порядке убывания, что я и хочу, но, очевидно, я не хочу, чтобы пользователь перезапускал приложение, чтобы результаты отображались в правильном порядке. Может кто-нибудь, пожалуйста, пролить свет на то, что происходит ??
Большое спасибо
Jules