[英]Sort One Dictionary with Another iPhone
我有兩個NSMutableDictionary對象。 字典1的鍵少於字典2,但是兩個字典共享的鍵在語法上是相同的。 我想用字典2中那些鍵的值對字典1進行重新排序。字典2中的值是整數。
有人可以讓我開始嗎?
編輯:我有一個鍵數組和一個包含鍵和數值的字典。 字典中的鍵和值比數組中的鍵/對象更多。 我想通過字典中那些鍵的對應值對數組重新排序。
很抱歉在這個問題上重做,但這更准確。
您可能在這里有一個基本的誤解。 NSDictionary
和NSSet
對象始終未排序。
僅對NSArray
和NSOrderedSet
對象進行排序。
您可能想要做的是創建第三個對象,即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.