【问题标题】:How to sort an array of objects by their NSString property如何通过对象的 NSString 属性对对象数组进行排序
【发布时间】:2010-10-04 01:05:51
【问题描述】:

我有一组自定义对象。这些对象的属性之一是 NSString。我想按那个属性排序。

因为它是一个 NSString 而不是一个 NSNumber 排序有点困难。在这种情况下是否有某种类方法可以提供帮助?应该怎么做?

【问题讨论】:

    标签: objective-c cocoa-touch sorting nsstring nsmutablearray


    【解决方案1】:

    确实有。 NSArray 有一个 -sortedArrayUsingDescriptors: 方法。调用它,并为您的属性传递一个排序描述符的数组。例如,如果您的属性是“lastName”,那么:

    NSSortDescriptor  *desc = [[[NSSortDescriptor alloc] initWithKey: @"lastName" ascending: YES];
    [array sortedArrayUsingDescriptors: [NSArray arrayWithObject: desc]];
    

    【讨论】:

    • 这适用于 NSStrings 数组。我说的是具有 NSString 属性的对象数组。
    • @awakeFromNib:不,这适用于具有名为 lastName 的 NSString 属性的对象数组。它不适用于 NSString 数组,因为它们没有 lastName 属性。
    • 我使用 sortUsingDescriptors 让它工作。你是不是搞错了?
    • -sortUsingDescriptors 将适用于 NSMutableArray,我举了一个标准 NSArray 的示例。
    猜你喜欢
    • 1970-01-01
    • 2011-07-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多