Belirli bir kümede olmayan çekirdek verilerden nesneleri almaya çalışıyorum, ancak çalışmaya başlayamadım. Örneğin, kullanıcı adı, kullanıcıAdı, aileAdı, verilenAdı ve etkin gibi birkaç özniteliği olan Kullanıcı adında temel bir veri varlığımız olduğunu varsayalım. adlarının bir dizi temsil dizelerden oluşan bir dizi göz önüne alındığında, kolayca kullanıcı adları bu listeye karşı gelen tüm kullanıcılar getirebilir:Kümedeki çekirdek verilerden nesne getirme
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] init];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"User"
inManagedObjectContext:moc];
[request setEntity:entity];
NSArray *userNames = [NSArray arrayWithObjects:@"user1", @"user2", @"user3", nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userName IN %@", userNames];
[request setPredicate:predicate];
NSArray *users = [moc executeFetchRequest:request error:nil];
Ancak, yani o setin tamamlayıcı getirmesini istediğiniz, tek istediğim userNames dizisinde belirtilen kullanıcı adlarına sahip olmayan çekirdek verilerdeki kullanıcılar. Bu konuya nasıl yaklaşılacağı konusunda bir fikri olan var mı? "NOT"
yüklemenin (i.e., "userName NOT IN %@")
yüklemesine eklenebilecek kadar basit olacağını düşündüm, ancak Xcode, yüklem biçiminin ayrıştırılamadığını söyleyen bir istisna atar. Ayrıca şans getirmeden istekleri almak için kullanılabilecek yüklemeyi kurmayı denedim. Dokümantasyon da özellikle yararlı değildi. Öneriler? Yorumlar? Hepsinden bir istek dönmelidir
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (userName IN %@)", userNames];
: Yardımın için teşekkürler :) sizin dizideki olmayan nesneleri bulmak için
Yeterince basit ... Teşekkürler, slev. – tomas
harika. Çalışmıyordum diye düşündüm. Ama bu benim dizideki verilerin başka bir alandan olmasıydı. Teşekkürler. Basit ve etkili. –
Not: Bu, NSNumber değişkenleri ile çalışmaz, muhtemelen bir anlam ifade eder, ancak bir NSN sayısında bir enum eklediğinizde utanç vericidir. Bu durumda, [NSPredicate predicateWithFormat: @ "NOT (enumWrapper IN {% d,% d})", enum1, enum2] 'gibi bir şey kullanın. –