Estou trabalhando no tutorial aqui (aprendendo Swift) para meu primeiro aplicativo: http://www.appcoda.com/search-bar-tutorial-ios7/
Estou preso nesta parte (código Objective-C):
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];
searchResults = [recipes filteredArrayUsingPredicate:resultPredicate];
}
Alguém pode aconselhar como criar um equivalente para NSPredicate em Swift?
searchResults = recipes.filter { resultPredicate.evaluateWithObject($0) }
Trabalhando com predicado por um bom tempo. Aqui está minha conclusão (SWIFT)
fonte
LIKE 'a%z'
?Exemplo de como usar no swift 2.0
Você obterá (playground)
fonte
Você pode usar filtros disponíveis em swift para filtrar o conteúdo de um array em vez de usar um predicado como em Objective-C.
Um exemplo em Swift 4.0 é o seguinte:
No exemplo acima, como cada elemento da matriz é uma string, você pode usar o
contains
método para filtrar a matriz.Se a matriz contiver objetos personalizados, as propriedades desse objeto podem ser usadas para filtrar os elementos de maneira semelhante.
fonte
Use o código abaixo:
fonte
Acho que essa seria a melhor maneira de fazer isso em Swift:
fonte
Sequence
, mas há casos em que você precisará de umNSPredicate
, como ao lidar comNSFetchedResultsController
.Em Swift 2.2
Em Swift 3.0
fonte
// mude "nome" e "valor" de acordo com os dados do seu array.
// Altere o nome de "yourDataArrayName" em sua matriz (NSArray).
fonte