Pendekatan yang paling sederhana adalah, menyediakan pemilih sortir ( dokumentasi Apple untuk detail)
Objektif-C
sortedArray = [anArray sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
Cepat
let descriptor: NSSortDescriptor = NSSortDescriptor(key: "YourKey", ascending: true, selector: "localizedCaseInsensitiveCompare:")
let sortedResults: NSArray = temparray.sortedArrayUsingDescriptors([descriptor])
Apple menyediakan beberapa penyeleksi untuk penyortiran alfabet:
compare:
caseInsensitiveCompare:
localizedCompare:
localizedCaseInsensitiveCompare:
localizedStandardCompare:
Cepat
var students = ["Kofi", "Abena", "Peter", "Kweku", "Akosua"]
students.sort()
print(students)
// Prints "["Abena", "Akosua", "Kofi", "Kweku", "Peter"]"
Referensi
Jawaban lain yang disediakan di sini menyebutkan menggunakan
@selector(localizedCaseInsensitiveCompare:)
Ini berfungsi baik untuk array NSString, namun jika Anda ingin memperluas ini ke jenis objek lain, dan mengurutkan objek-objek tersebut sesuai dengan properti 'nama', Anda harus melakukan ini sebagai gantinya:Objek Anda akan diurutkan sesuai dengan properti nama objek tersebut.
Jika Anda ingin penyortiran menjadi tidak peka huruf besar-kecil, Anda perlu mengatur deskriptor seperti ini
sumber
name
bukan kunci yang valid. Kunci apa yang saya gunakan untuk mengurutkan string berdasarkan abjad dengan NSSortDescriptor?Cara yang lebih ampuh untuk menyortir daftar NSString untuk menggunakan hal-hal seperti NSNumericSearch:
Dikombinasikan dengan SortDescriptor, itu akan memberikan sesuatu seperti:
sumber
Gunakan kode di bawah ini untuk mengurutkan dalam urutan abjad:
Di bawah ini adalah log konsol:
sumber
Metode mudah lain untuk mengurutkan array string terdiri dengan menggunakan
description
properti NSString dengan cara ini:sumber
Ini sudah memiliki jawaban yang bagus untuk sebagian besar tujuan, tetapi saya akan menambahkan jawaban saya yang lebih spesifik.
Dalam bahasa Inggris, biasanya ketika kita abjad, kita mengabaikan kata "the" di awal frasa. Jadi "Amerika Serikat" akan dipesan di bawah "U" dan bukan "T".
Ini melakukan itu untukmu.
Mungkin akan lebih baik untuk menempatkan ini dalam kategori.
sumber
sumber