これは高くも低くも見えましたが、答えが見つかりません。指定した文字列と等しくないすべてのレコードのコアデータを照会しようとしています。たとえば、現在のセッションIDと等しくないすべてのレコード。私はこれらを試してみました:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"listingID != %@", [sitListingID objectAtIndex:i]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ NOT CONTAINS[cd] %@",@"listingID", [sitListingID objectAtIndex:i]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ NOT CONTAINS %@",@"listingID", [sitListingID objectAtIndex:i]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"listingID NOT like %@", [sitListingID objectAtIndex:i]];
何も動作しません。 -------------------------------------------------- ---より多くのコード
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"ListingRecord" inManagedObjectContext:context];
[request setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"sessionID <> %@", uniqueSessionListings];
[request setPredicate:predicate];
NSError *error = nil;
NSMutableArray *mutableFetchResults = [[context executeFetchRequest:request error:&error] mutableCopy];
最初の述語
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"listingID != %@", sessionID];
属性listingID
がsessionID
と等しくない(listingID
とsessionID
が同じタイプである場合)すべてのレコードを検索するように動作するはずです。
両方が文字列であり、listingID
含まない文字列sessionID
を部分文字列として含むすべてのレコードを検索する場合、この述部は機能するはずです。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (listingID CONTAINS %@)", sessionID];
文字列比較を大文字と小文字を区別して区別する必要がある場合は、「CONTAINS [cd]」を使用します。
[〜#〜] note [〜#〜]:属性名を引数として指定できますが、%K
の代わりに%@
を形式として使用する必要があります。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (%K CONTAINS %@)", @"listingID", sessionID];