คำถามติดแท็ก nspredicate

8
NSPredicate: การกรองวัตถุตามวันของคุณสมบัติ NSDate
ฉันมีโมเดลข้อมูลหลักที่มีNSDateคุณสมบัติ ฉันต้องการกรองฐานข้อมูลตามวัน ฉันคิดว่าการแก้ปัญหาจะเกี่ยวข้องกับNSPredicateแต่ฉันไม่แน่ใจว่าจะรวมทั้งหมดเข้าด้วยกันได้อย่างไร ฉันรู้วิธีเปรียบเทียบวันของสองวันNSDateโดยใช้NSDateComponentsและNSCalendarแต่ฉันจะกรองด้วยNSPredicate? บางทีฉันอาจต้องสร้างหมวดหมู่ในNSManagedObjectคลาสย่อยของฉันที่สามารถส่งคืนวันที่เปล่าโดยมีเพียงปีเดือนและวัน จากนั้นฉันสามารถเปรียบเทียบสิ่งนั้นในNSPredicateไฟล์. นี่เป็นคำแนะนำของคุณหรือมีอะไรที่ง่ายกว่านี้

6
การใช้ NSPredicate เพื่อกรอง NSArray ตามคีย์ NSDictionary
ฉันมีพจนานุกรมมากมาย ฉันต้องการกรองอาร์เรย์ตามคีย์ ฉันลองสิ่งนี้: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == %@)", @"Football"]; NSArray *filteredArray = [data filteredArrayUsingPredicate:predicate]; ไม่ได้ผลฉันไม่ได้รับผลลัพธ์ ฉันคิดว่าฉันทำอะไรผิด ฉันรู้ว่านี่เป็นวิธีการถ้า "SPORT" เป็นไอวาร์ ฉันคิดว่ามันอาจจะแตกต่างกันถ้าเป็นกุญแจ อย่างไรก็ตามฉันไม่สามารถหาตัวอย่างได้ ขอบคุณ อัปเดต ฉันเพิ่มเครื่องหมายคำพูดรอบ ๆ สตริงที่ฉันกำลังค้นหา NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SPORT == '%@')", @"Football"]; มันยังไม่ทำงาน อัปเดต 2 แก้ไขได้ จริงๆแล้วฉันต้องลบเครื่องหมายคำพูดเดียวซึ่งดูเหมือนจะขัดกับสิ่งที่ไกด์พูด ปัญหาที่แท้จริงของฉันคือฉันมีอาร์เรย์ที่ซ้อนกันและฉันไม่ได้ประเมินพจนานุกรมจริงๆ หัวกระดูกเคลื่อน

2
NSArray พร้อม NSPredicate โดยใช้ NOT IN
ฉันมี NSArray ที่ฉันต้องการกรองวัตถุบางอย่างโดยใช้ NSPredicate ฉันหวังว่าฉันจะใช้ NOT IN ได้เนื่องจากฉันเห็นว่าฉันสามารถทำ IN ได้อย่างง่ายดาย ดังนั้นฉันจึงมีอาร์เรย์ของฉัน: self.categoriesList จากนั้นฉันจะได้รับค่าที่ต้องการลบ: NSArray *parentIDs = [self.cateoriesList valueForKeyPath:@"@distinctUnionOfObjects.ParentCategoryID"]; นี่ทำให้ฉันมีรายการ ParentCategoryID สำหรับหมวดหมู่ที่ฉันไม่ต้องการแสดงดังนั้นฉันคิดว่าฉันสามารถใช้ NSPredicate เพื่อลบออกได้: self.cateoriesList = [self.cateoriesList filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"CategoryID NOT IN %@",parentIDs]]; สิ่งนี้ล้มเหลว: reason: 'Unable to parse the format string "CategoryID NOT IN %@"' ถ้าอยากจะใช้แค่ IN ที่ใช้งานได้ดีแน่นอน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.