2
晚上好。如何對NSMutableArray進行排序?代碼審查需要
此代碼有效。它根據西裝和卡片價值排列一系列卡片。這也是非常強大的力量。你能推薦一個更好的方法嗎? Objective-C是否幫助處理對象被排序的情況有多個字段,排序依賴於哪個字段?
-(void) sort: (NSMutableArray *) deck {
NSUInteger count = [deck count];
Card *thisCard;
Card *nextCard;
int this;
int next;
BOOL stillSwapping = true;
while (stillSwapping) {
stillSwapping = false;
for (NSUInteger i = 0; i < count; ++i) {
this = i;
next = i+1;
if (next < count) {
thisCard = [deck objectAtIndex:this];
nextCard = [deck objectAtIndex:next];
if ([thisCard suit] > [nextCard suit]) {
[deck exchangeObjectAtIndex:this withObjectAtIndex:next];
stillSwapping = true;
}
if ([thisCard suit] == [nextCard suit]) {
if ([thisCard value] > [nextCard value]) {
[deck exchangeObjectAtIndex:this withObjectAtIndex:next];
stillSwapping = true;
}
}
}
}
}
}
+ 1 - 漂亮的代碼示例 – bryanmac
很不錯確實如此。謝謝 – JAM
優秀的答案。我建議在你的類上使用實現'compare:'的建議(使用塊中的代碼進行比較)。 – bbum