【问题标题】:Want to Create a Sorted Array From a Dictionary of objects with Links想要从带有链接的对象字典创建排序数组
【发布时间】:2014-11-21 19:30:21
【问题描述】:

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

我正在尝试编写一个 * 将模型按顺序放入 NSArray 的函数。

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

【问题讨论】:

    标签: objective-c linked-list nsarray nsdictionary


    【解决方案1】:

    你可以试试这样很简单的东西

    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;
        }
    }];
    

    【讨论】:

    • nextModel 只是一个随机的字母数字字符串。所以我不认为排序会起作用。需要查一下
    • 如果您想进行自定义排序,请查看第二个选项。您可以在那里查找 id 并根据需要完全自定义进行比较。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-15
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多