Saya mengerjakan tutorial di sini (mempelajari Swift) untuk aplikasi pertama saya: http://www.appcoda.com/search-bar-tutorial-ios7/
Saya terjebak di bagian ini (kode Objective-C):
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];
searchResults = [recipes filteredArrayUsingPredicate:resultPredicate];
}
Adakah yang bisa menyarankan cara membuat yang setara untuk NSPredicate di Swift?
searchResults = recipes.filter { resultPredicate.evaluateWithObject($0) }
Bekerja dengan predikat cukup lama. Ini kesimpulan saya (SWIFT)
sumber
LIKE 'a%z'
?Contoh cara menggunakan di swift 2.0
Anda akan mendapatkan (taman bermain)
sumber
Anda dapat menggunakan filter yang tersedia dengan cepat untuk memfilter konten dari larik alih-alih menggunakan predikat seperti di Objective-C.
Contoh di Swift 4.0 adalah sebagai berikut:
Dalam contoh di atas, karena setiap elemen dalam array adalah string, Anda dapat menggunakan
contains
metode untuk memfilter array.Jika array berisi objek kustom, properti objek tersebut dapat digunakan untuk memfilter elemen dengan cara yang sama.
sumber
Gunakan kode Di Bawah Ini:
sumber
Saya pikir ini akan menjadi cara yang lebih baik untuk melakukannya di Swift:
sumber
Sequence
, tetapi ada kasus di mana Anda memerlukanNSPredicate
, seperti saat menanganiNSFetchedResultsController
.Dengan cepat 2.2
Dalam 3.0 cepat
sumber
// ubah "nama" dan "nilai" sesuai dengan data array Anda.
// Ubah nama "yourDataArrayName" sesuai dengan array Anda (NSArray).
sumber