SORU
24 EYLÜL 2009, PERŞEMBE


NSPredicate küçük harf duyarlı eşleşen.

Kullanıcı bir görünümde görüntülenen öğe filtre için bir dize türü bir arama alanı inşa ediyorum. Her nesne görüntülenen keywords-çok ilişki vardır, ve nesneleri kendi anahtar kelimelere göre filtre edebilmek istiyorum. Her bir anahtar kelime nesne name bir özelliği vardır, bu gibi görünüyor filtreleme yapmak için bir NSPredicate kurdum:

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"keywords.name CONTAINS %@", self.searchString];

Bu çalışır, ama sorun arama anahtar sözcüğünü büyük harfle ama hepsi küçük harflerle kullanıcı türleri vardır (büyük küçük harf duyarlı olmasıdır, hiçbir şey bulamadım. Aşağıdaki değiştirmeyi denedim:

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"keywords.name CONTAINS[c] %@", self.searchString];

Ama bu eşleme büyük / küçük harf duyarlılığı herhangi bir fark yapmaz. Bir şekilde büyük / küçük harf duyarlı eşleşen bu sadece düz bir yüklem kullanarak yapmak var mı? Ya ben anahtar kelime sınıfı özel erişimci çeşit uygulamak gerekir, örneğin lowercaseName bir yöntem yazmak ve arama dizesi lowercased bir sürümü karşı maç yerine?

Ek: Sonra daha fazla araştırma, bu geçici çözüm ekleyerek özel bir erişimci TAMAM çalışır için Kullanım Kılavuzu NSPredicate ama çalışmıyor hiç kullanırken NSFetchRequest Core Data, sadece çalışır sorgulama, öznitelikleri tanımlı Temel Veri modeli.

CEVAP
3 Kasım 2009, Salı


Yanlış anlamadıysam, yüklem herhangi bir anahtar kelime adı arama dizesini eşleşen zaman doğru olmak istiyorum. Bunun için bu gibi HERHANGİ bir anahtar kelime test etmek gerekir:

[NSPredicate predicateWithFormat:@"ANY keywords.name CONTAINS[c] %@", ...];

Bu anahtar kelimeleri arama ve eğer bu anahtar kelimeler adının herhangi bir arama dizesi içeriyorsa doğru döndürür.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fast2hell

    fast2hell

    16 AĞUSTOS 2006
  • jat4011

    jat4011

    16 EKİM 2010
  • Jeb Corliss

    Jeb Corliss

    17 Kasım 2006