我一直在這個小時,並找不到問題。 我有一個分數數組,我在覈心數據模型中保存在遊戲結束時。當我重新回到高分視圖 - 控制我從核心數據加載的分數,並使用下面的函數,其中得分陣列是一個NSMutableArray與我的10個高分核心數據排序NSMutableArray奇怪的結果
[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;
}
}
這始終將最後得分排序的數組保存後無論其值如何進入列表頂部?奇怪的是,當我重新啓動我的應用程序時,相同的功能將所有分數以正確的降序排列,這正是我想要的,但顯然我不希望用戶必須重新啓動應用才能看到以正確順序顯示的分數。任何人都可以請點亮一下發生了什麼?
非常感謝
朱
什麼類型是str1和str2? – Eiko 2010-06-30 15:59:32