簡體   English   中英

用另一部iPhone排序一個字典

[英]Sort One Dictionary with Another iPhone

我有兩個NSMutableDictionary對象。 字典1的鍵少於字典2,但是兩個字典共享的鍵在語法上是相同的。 我想用字典2中那些鍵的值對字典1進行重新排序。字典2中的值是整數。

有人可以讓我開始嗎?

編輯:我有一個鍵數組和一個包含鍵和數值的字典。 字典中的鍵和值比數組中的鍵/對象更多。 我想通過字典中那些鍵的對應值對數組重新排序。

很抱歉在這個問題上重做,但這更准確。

您可能在這里有一個基本的誤解。 NSDictionaryNSSet對象始終未排序。

僅對NSArrayNSOrderedSet對象進行排序。

您可能想要做的是創建第三個對象,即NSArray,並用所需的鍵填充它。

然后,如果您遍歷NSArray,則可以按已排序數組的順序訪問字典對象。

您是否在尋找方法調用sortedArrayUsingComparator :? 這將需要一個數組,並返回一個包含已排序元素的數組。

這是一些示例代碼,該代碼根據“排序順序”字段中的值對字典進行排序。 您應該閱讀這些調用的文檔:

    NSComparisonResult (^sortBlock)(id, id) = ^(id obj1, id obj2) {

    if ([[obj1 objectForKey:@"sortorder"] intValue] > [[obj2 objectForKey:@"sortorder"] intValue]) { 
        return (NSComparisonResult)NSOrderedDescending;
    }
    if ([[obj1 objectForKey:@"sortorder"] intValue] < [[obj2 objectForKey:@"sortorder"] intValue]) {
        return (NSComparisonResult)NSOrderedAscending;
    }
    return (NSComparisonResult)NSOrderedSame;
};

+ (NSArray *) returnSortedArrayByAlpha:(NSArray*) inputArray whichField:(NSString*) whichField {

    NSArray * sortedArray = [inputArray sortedArrayUsingComparator:sortBlock];
    return  sortedArray;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM