亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何按字母順序對NSArray進行排序?

如何按字母順序對NSArray進行排序?

函數式編程 2019-07-12 16:40:34
如何按字母順序對NSArray進行排序?如何對填充了[UIFont familyNames]按字母順序?
查看完整描述

3 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

最簡單的方法是提供一個排序選擇器(蘋果的文檔詳情)

目標-C

sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];

斯威夫特

let descriptor: NSSortDescriptor = NSSortDescriptor(key: "YourKey", ascending: true, selector: "localizedCaseInsensitiveCompare:")
let sortedResults: NSArray = temparray.sortedArrayUsingDescriptors([descriptor])

Apple為字母排序提供了幾個選擇器:

  • compare:

  • caseInsensitiveCompare:

  • localizedCompare:

  • localizedCaseInsensitiveCompare:

  • localizedStandardCompare:

斯威夫特

var students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]students.sort()print(students)// Prints "["Abena", "Akosua", "Kofi",
 "Kweku", "Peter"]"

參照系


查看完整回答
反對 回復 2019-07-12
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

這里提供的其他答案提到@selector(localizedCaseInsensitiveCompare:)這對于NSString數組非常有用,但是如果您想將其擴展到另一種類型的對象,并根據“名稱”屬性對這些對象進行排序,則應該這樣做:

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
sortedArray=[anArray sortedArrayUsingDescriptors:@[sort]];

您的對象將根據這些對象的name屬性進行排序。

如果希望排序不區分大小寫,則需要像下面這樣設置描述符

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)];



查看完整回答
反對 回復 2019-07-12
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

對NSString列表進行排序的一種更強大的方法是使用諸如NSNDigicSearch這樣的內容:

NSArray *sortedArrayOfString = [arrayOfString sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
            return [(NSString *)obj1 compare:(NSString *)obj2 options:NSNumericSearch];
        }];

與SortDescriptor相結合,這將提供如下內容:

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
        return [(NSString *)obj1 compare:(NSString *)obj2 options:NSNumericSearch];
    }];NSArray *sortedArray = [anArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:sort]];



查看完整回答
反對 回復 2019-07-12
  • 3 回答
  • 0 關注
  • 1083 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號