Objective c 要从具有链接的对象字典中创建排序数组吗

Objective c 要从具有链接的对象字典中创建排序数组吗,objective-c,linked-list,nsarray,nsdictionary,Objective C,Linked List,Nsarray,Nsdictionary,我有一个MyModel对象的NSDictionary,其中每个键都是一个NSString,表示对象的uid属性。每个模型都有一个名为nextModel的属性,该属性包含模型的uid字符串,显示时该字符串应排序在当前字符串之后。它基本上是一个虚拟的链表 我试图编写一个函数,将模型按顺序放入NSArray 我没有在搜索中找到任何东西。有人有什么建议吗?你可以试试这种非常简单的方法 NSArray *array = [dictionary.allValues sortedArrayUsingDescr

我有一个MyModel对象的NSDictionary,其中每个键都是一个NSString,表示对象的uid属性。每个模型都有一个名为nextModel的属性,该属性包含模型的uid字符串,显示时该字符串应排序在当前字符串之后。它基本上是一个虚拟的链表

我试图编写一个函数,将模型按顺序放入NSArray


我没有在搜索中找到任何东西。有人有什么建议吗?

你可以试试这种非常简单的方法

NSArray *array = [dictionary.allValues sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"nextModel" ascending:YES]]];
如果您想要更多的自定义排序,请尝试使用比较器

NSArray *array = [dictionary.allValues sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
    if (obj1.value > obj2.value) {
        return NSOrderedAscending;
    }
    else {
        return NSOrderedDescending;
    }
}];

下一个模型只是一个随机的字母数字字符串。所以我认为分类是行不通的。如果您想在第二个选项中进行自定义排序查找,则需要查找它。您可以在那里查找ID,并根据需要进行比较。