Bu gerçekten sadece bir sözdizimi anahtarıdır. Tamam, bu yüzden şu yöntem çağrımız var:
[NSPredicate predicateWithFormat:@"name contains[c] %@", searchText]
Swift yılında kurucular "blahWith ..." bölümünü atlayın ve sadece bir fonksiyonu olarak sınıf adını kullanabilir ve daha sonra argümanları doğruca, bu yüzden [NSPredicate predicateWithFormat: …]olacaktı NSPredicate(format: …). (Başka bir örnek için, [NSArray arrayWithObject: …]olur NSArray(object: …). Bu, Swift'de normal bir kalıptır.)
Şimdi argümanları kurucuya iletmemiz gerekiyor. Objective-C'de, NSString değişmezleri gibi görünür @"", ancak Swift'de dizeler için sadece tırnak işaretleri kullanırız. Bu bize şunu verir:
let resultPredicate = NSPredicate(format: "name contains[c] %@", searchText)
Ve aslında tam da burada ihtiyacımız olan şey bu.
(Bu arada, diğer yanıtlardan bazılarının bunun yerine bir biçim dizesi kullandığını fark edeceksiniz "name contains[c] \(searchText)". Bu doğru değil. Bu, yüklem biçimlendirmesinden farklı olan ve genellikle bunun için işe yaramayacak olan dize enterpolasyonunu kullanır.)