首先,给NSMutableDictionary建一个分类,里面加上自定义的排序方法。
头文件:
#import <Foundation/Foundation.h>
@interface NSMutableDictionary(NSMutableDictionaryCompare)
- (NSComparisonResult)compareWithDictionary:(NSMutableDictionary *) dic;
@end
实现文件:
#import "CustomCompare.h"
@implementation NSMutableDictionary(NSMutableDictionaryCompare)
- (NSComparisonResult)compareWithDictionary:(NSMutableDictionary *) dic{
NSMutableDictionary *dic1 = self;
NSString *name1 = [dic1 objectForKey:@"Name"];
NSString *name2 = [dic objectForKey:@"Name"];
return [name2 compare:name1];
}
@end
示例:
NSMutableDictionary *dic1 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Michael", @"Name", @"26", @"Age", nil];
NSMutableDictionary *dic2 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Eric", @"Name", @"24", @"Age", nil];
NSMutableDictionary *dic3 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Emilla", @"Name", @"25", @"Age", nil];
NSMutableDictionary *dic4 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Josh", @"Name", @"32", @"Age", nil];
NSMutableDictionary *dic5 = [[NSMutableDictionary alloc] initWithObjectsAndKeys:@"Echo", @"Name", @"22", @"Age", nil];
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:dic1, dic2, dic3, dic4, dic5, nil];
[dic1 release];
[dic2 release];
[dic3 release];
[dic4 release];
[dic5 release];
[array sortUsingSelector:@selector(compareWithDictionary:)];
NSLog(@"%@", array);
[array release];
示例输出:
{
Age = 26;
Name = Michael;
},
{
Age = 32;
Name = Josh;
},
{
Age = 24;
Name = Eric;
},
{
Age = 25;
Name = Emilla;
},
{
Age = 22;
Name = Echo;
}
分享到:
相关推荐
功能安全访问NSArray安全访问NSDictionary安全访问并对NSMutableArray进行更改安全访问并对NSMutableDictionary进行更改安全访问并对NSMutableString进行更改要求iOS 8.0+ / macOS 10.13.6+ Xcode 10.1(10B61)+...
在Objective-C中,我们可以使用`NSArray`的`sortedArrayUsingComparator:`方法,传入一个比较Block来实现字典的排序。以下是一个按照键排序的例子: ```objc NSDictionary *unsortedDict = @{@"C": @3, @"A": @1...
例如,可以创建一个名为`YHDic`的自定义字典类,它扩展了`NSMutableDictionary`的功能,并且包含一个`NSMutableArray`成员变量来跟踪键值对的插入顺序。当调用`addObject:forKey:`、`removeObjectForKey:`或`set...
在Objective-C中,我们可以使用`NSArray`类的`sortedArrayUsingComparator:`方法来对数组进行自定义排序。这个方法接受一个比较器 block,其中我们可以指定如何比较数组中的元素。对于字符串,我们可以基于Unicode值...
1.字典使用Key-Value的形式储存数据,是关键字及其定义(描述)的集合 2.字典中的对象储存没有顺序,使用key来表示每个对象,key唯一,Value值可相同 3.字典里Value值在前,key在后 Cocoa中的实现字典的集合...
`NSMutableArray`提供了可变的有序集合,可以在运行时添加、删除或重新排序元素。 - **创建和使用`NSMutableArray`**: - 初始化:`NSMutableArray *mutableArray = [[NSMutableArray alloc] init];` - 添加元素...
3 返回NSMutableDictionary或者NSMutableArray,键值封装。 示例见最后的注释。 XML封装类待续。。。 转载请注明来源,谢谢 ====== XmlResolve.h #import <Foundation/Foundation.h> @interface ...
在Swift中,可以使用`[String: Any]`字典,并结合`sorted(by:)`方法来实现按特定规则排序的字典。不过,这并不会保持插入顺序,而是每次排序都会重新计算顺序。 了解这些知识点后,你可以根据需求灵活地处理iOS...
6. **排序与比较**:集合类库中的对象可以通过`compare:`方法进行比较,数组和集合可以使用`sortedArrayUsingComparator:`进行排序。 7. **性能优化**:在处理大量数据时,可以使用NSOrderedSet或NSCountedSet来...
CDZDictionaryArraydictionary array, dictionaryarray, A mutable array owning key, 一个带有键值的可变数组to use like NSMutableDictionary or NSMutableArray用法和 NSMutableDictionary 和 NSMutableArray ...
这些类包括NSArray、NSSet、NSEnumerator和NSDictionary,以及它们的可变版本NSMutableArray、NSMutableSet和NSMutableDictionary。这些类提供了各种操作来处理对象的集合,如添加、删除、查找等。以下是关于这些类...
- **背景介绍:** 在Objective-C中,我们可以自定义排序方法来对数组进行排序。 - **知识点解释:** 要实现学生对象数组按照学号升序排列的比较逻辑,可以声明一个实例方法`- (NSComparisonResult)...
代码中提供的`quickSortWithArray`方法实现了这一算法,它通过选取一个基准值,将数组分为两部分,使得一部分的所有元素都小于基准,另一部分的所有元素都大于基准,然后对这两部分递归地进行快速排序。 3. **`...
Objective-C是苹果公司开发的一种面向对象的编程语言,...以上就是Objective-C中NSDictionary和NSMutableDictionary词典对象的主要使用方法,通过这些方法可以高效地处理键值对数据,实现复杂的数据管理与存储需求。
但可以使用NSMutableDictionary进行插入操作,方法是`setObject:forKey:`: ```objc NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"Value1", @"Key1", @"Value2", @"Key2", ...
##### (4) 集合类(NSArray、NSMutableArray、NSDictionary、NSMutableDictionary、NSSet、NSMutableSet) - **NSArray 和 NSMutableArray** - **定义**: - NSArray:不可变数组,一旦创建后不能更改。 - ...
- **字典**:可以使用`NSMutableDictionary`和`NSDictionary`来存储键值对。 例如创建一个可变数组和一个可变字典: ```objective-c NSMutableArray *mutableArray = [[NSMutableArray alloc] init]; [mutableArray...
NSMutableDictionary提供了增加和修改键值对以及删除字典内容的方法。 ### 集合(NSSet & NSMutableSet) 集(Set)是一个无序的集合,在Objective-C中由NSSet类来表示。集中的每个元素都是唯一的,它类似于数学中...
例如,使用`NSMutableDictionary`和`NSMutableArray`的`addObject:`方法而不是`setObject:forKey:`,以避免创建新的集合实例。 6. **可扩展性**:设计灵活的接口,使得新加入的自定义对象或数据结构能轻松集成到...
1. 冒泡排序:一种简单的排序方法,通过重复遍历数组,比较相邻元素并交换位置,直到没有更多的交换。Objective-C中可以使用`for`循环和条件语句实现。 2. 选择排序:每次从未排序的部分中找到最小(或最大)的元素...