Ios NSPredicate不返回预期的项目
我试图在数组中查找Ios NSPredicate不返回预期的项目,ios,objective-c,nspredicate,Ios,Objective C,Nspredicate,我试图在数组中查找itemId和size不匹配的项。 但是,以下查询不会返回相同但大小不同的itemId项目。我想知道我错过了什么 首先,我提取项目如下,然后我试图找到这个项目的赞扬 NSPredicate *itemPredicate = [NSPredicate predicateWithFormat:@"(%K == %@)", kItemId, itemId]; NSPredicate *sizePredicate = [NSPredicate predicateWithFormat:@
itemId
和size
不匹配的项。
但是,以下查询不会返回相同但大小不同的itemId
项目。我想知道我错过了什么
首先,我提取项目如下,然后我试图找到这个项目的赞扬
NSPredicate *itemPredicate = [NSPredicate predicateWithFormat:@"(%K == %@)", kItemId, itemId];
NSPredicate *sizePredicate = [NSPredicate predicateWithFormat:@"(%K == %@)", kSize, [NSString stringWithFormat:@"%d", size]];
NSPredicate *combinedPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[itemPredicate, sizePredicate]];
NSArray *itemInOrder = [sharedData.orderItems filteredArrayUsingPredicate:combinedPredicate];
试图提取itemInOrder
NSPredicate *restOfOrderPredicate = [NSPredicate predicateWithFormat:@"(%K != %@)", kItemId, itemId];
NSPredicate *restSizePredicate = [NSPredicate predicateWithFormat:@"(%K != %@)", kSize, [NSString stringWithFormat:@"%d", size]];
NSPredicate *restCombinedPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[restSizePredicate, sizePredicate]];
NSMutableArray *restOfItemsInOrder = [NSMutableArray arrayWithArray:[sharedData.orderItems filteredArrayUsingPredicate:restOfOrderPredicate]];
我认为这里有两个问题:
和
谓词使用的是sizePredicate
,但我认为您希望使用restSizePredicate
或谓词。现在,您将错过任何大小相同或具有相同itemId
的内容
notPredicateWithSubpredicate
,这可能正是您想要的:保持第一个查询和谓词不变。然后对于第二个查询,使用notPredicateWithSubpredicate
并传入第一个查询中的谓词你能试试这个NSPredicate*itemPredicate=[NSPredicate predicateWithFormat:@“(%K==[c]]@)”,kItemId,itemId];我想查找
itemId
和size
一起不在数组中的项目。换句话说,itemInOrder的补码
你们能用空状态的伪文本存储它们并和之比较吗?你们能用一个例子来说明你们的评论吗?你们能用一个例子来说明吗?