我在理解這個compare-using-selector
背後的邏輯時遇到了一些麻煩。排序nsdictionary,它是如何工作的?
我有下面的代碼,我試圖提取鍵和排序他們在同一時間。但是,它不排序。無論我做什麼,輸出NSArray的順序都不會改變。
NSMutableDictionary *dictToSort = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Joe", [NSNumber numberWithInt:2], @"mark", [NSNumber numberWithInt:1], @"mdark", [NSNumber numberWithInt:3], nil];
NSArray *dictToSortKeys = [dictToSort keysSortedByValueUsingSelector:@selector(compare:)];
NSLog(@"Not Sorted");
NSNumber *xx = dictToSortKeys[0];
NSNumber *xy = dictToSortKeys[1];
NSNumber *xz = dictToSortKeys[2];
NSLog(@"Sorted %d %d %d", xx.integerValue , xy.integerValue, xz.integerValue);
我不明白這個compare:
函數是如何工作的。它說它返回NSOrderedAscending, NSOrderedSame or NSOrderedDescending
,但是沒有辦法獲得這些回報。而且,這應該是神奇的工作?這個比較的文件很差。
幹得好小夥子,偉大的答案。 + 1是個好人。:) –
是的,就是這樣。好東西.. – mskw
但是,我會如何扭轉秩序?編輯:我會使用conpare:選項。 – mskw