- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想得到两个 NSSet 的交集,默认情况下 NSSset 比较对象的每个成员以得出 SetA 和 SetB 中的交集对象。
这是我的代码。
NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];
[dic setObject:@"25" forKey:@"age"];
[dic setObject:@"abc" forKey:@"Name"];
NSMutableDictionary *dic1 = [[NSMutableDictionary alloc]init];
[dic1 setObject:@"21" forKey:@"age"];
[dic1 setObject:@"xyz" forKey:@"Name"];
NSMutableDictionary *dic2 = [[NSMutableDictionary alloc]init];
[dic2 setObject:@"20" forKey:@"age"];
[dic2 setObject:@"abc" forKey:@"Name"];
NSMutableDictionary *dic3 = [[NSMutableDictionary alloc]init];
[dic3 setObject:@"25" forKey:@"age"];
[dic3 setObject:@"abcNameNotMatch" forKey:@"Name"];
NSMutableDictionary *dic4 = [[NSMutableDictionary alloc]init];
[dic3 setObject:@"20" forKey:@"age"];
[dic3 setObject:@"abcNameNotMatch" forKey:@"Name"];
NSArray *a = [NSArray arrayWithObjects:dic,dic1,dic2, nil];
NSArray *b = [NSArray arrayWithObjects:dic3,dic4, nil];
NSMutableSet *setA = [NSMutableSet setWithArray:a];
NSSet *setB = [NSSet setWithArray:b];
//[setA intersectSet:setB];
//NSLog(@"c: %@", [setA allObjects]);
[setA intersectSet:setB];
NSLog(@"d: %@", [setA allObjects]);
我只想根据年龄获取过滤对象(相交)。简而言之,我可以指定 intersectSet 函数应该只比较 SetA 和 SetB.MeanWhile 的年龄,而忽略名称的值。2 对象应该使用我的代码返回 dic 和 dic2。setA 和 setB 中的相交对象是。寻求帮助。
组A
1)dic年龄是25岁
2)dic2 年龄是 20
B组
1)dic3 25岁
2)dic4 年龄是 20
最佳答案
尝试:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age in %@.age", setB];
NSSet *result = [setA filteredSetUsingPredicate:predicate];
如果你想修改setA
本身,使用:
[setA filterUsingPredicate:predicate];
例子:
NSMutableSet *setA = [NSMutableSet setWithArray:
@[
@{@"age":@(11), @"Name":@"abc"},
@{@"age":@(11), @"Name":@"def"},
@{@"age":@(22), @"Name":@"ghi"},
@{@"age":@(22), @"Name":@"jkl"},
@{@"age":@(33), @"Name":@"lmn"},
@{@"age":@(33), @"Name":@"opq"},
]];
NSSet *setB = [NSSet setWithArray:
@[
@{@"age":@(11), @"Name":@"rst"},
@{@"age":@(22), @"Name":@"uvw"},
@{@"age":@(22), @"Name":@"xyz"},
]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age in %@.age", setB];
[setA filterUsingPredicate:predicate];
NSLog(@"%@", setA);
输出:
{(
{
Name = abc;
age = 11;
},
{
Name = def;
age = 11;
},
{
Name = ghi;
age = 22;
},
{
Name = jkl;
age = 22;
}
)}
关于ios - 我可以将 NSPredicate 与 NSSet 一起使用吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26903759/
我一直在尝试使用 CoreData 和 Swift 在关系中添加对象。我很茫然,我不明白为什么我的代码不起作用。我正在尝试向“团队”添加“事件”。我找不到已接受的答案(应该有效)和我的代码(无效)之间
我有两个 NSSet。一个包含所有用户 key ,另一个包含在线用户 key 。我想分两部分展示这个值。 Section 1-在线用户和section2-其他用户 我使用如下谓词完成了此操作。 NSS
我正在努力处理核心数据...有些事情我不明白,所以如果有人能帮助我,我将不胜感激!我有一个实体(食谱)与另一个实体(膳食)存在多对多关系。我想选择所有与一顿饭无关的食谱……所以我试过了: 代码: [m
这个问题在这里已经有了答案: Odd property declaration syntax containing angular brackets <> (2 个回答) 6年前关闭。 我已生成 NS
我有两个关系表。 在尝试保存产品的 ShopItem 类中: let productEntity = NSEntityDescription.entityForName("Product", inMa
我有一个 UITableView,它通过以下方式添加核心数据中的信息: 标题中添加了各种名称的“类别” 与类别相对应的名称应加载到类别下方的单元格中 现在,我的标题加载了正确的名称以及添加的正确数量的
当列出相同的 tableView 时,有时会发生这种错误,我的意思是有时是,有时不是。当我尝试检查检索到的 NSSet 是否包含任何对象时: if(coin.dublicates.count > 0)
众所周知,比较 float 时存在 float 精度问题。 此外,NSSet 使用相等比较来保持元素在其中的唯一性。 那么当 NSSet 存储其中包含 float/double 的 NSValues
我正在将数据与核心数据一起使用,并获得一个 NSNumber 的 NSSet...我的问题是如何轻松地将所有对象更改为 int 值?或者我可以直接从数据库中获取 int 值吗? 谢谢 最佳答案 NSS
假设我有 NSManagedObject Zoo,他得到了一个到名为 cats 的“Cat”的连接 oneToMany,这个连接是 NSSet。当我使用函数 'filteredSetUsingPred
我在产品实体和购物车实体之间存在一对多关系。 用户需要有机会从购物车中删除产品。 我这样获取产品: // Fetch request for "Product": NSFetchRe
我正在尝试处理 xCode 中的关系,但遇到了一些问题: 我想创建一个简单的 User 到 favoriteThing 关系。我创建了一个模型,因此每个用户看起来都是这样的: extension Us
我想过滤categoryId == value但我的谓词失败的地方。这是我的代码。 categoryList 是 VenueCategory 类的对象数组,categoryId 是 Category
很抱歉新手问题,但我们都在这一点上:) 我正在进行枚举以从 NSSet 中获取正确的对象,以将 Cell 的标题设置为 Set 中的对象,这是我的代码: // the object we wa
我有 2 个按钮:button1 和 button2。我想为每个触摸的相应按钮创建一个 NSSet,并希望在触摸按钮 2 时显示 set1 值,反之亦然。按下按钮 1 时仅打印 set 1,按下按钮
我从 CoreData 返回了一个 Customer 对象。我正在尝试计算 NSSet 中存在的所有 amount 属性的总和: extension Customer { //...
我从 Web 服务中获取了一些 JSON,其中包含我希望分解为元素的逗号分隔字符串。 因为这是多对多关系,所以我尝试将其作为 NSSet 获取。但是,json 本身似乎由字符串组成,因此我需要先将逗号
所以我有这个 NSSet 对象,直接来自 Core Data 关系。这个 NSSet 包含的对象都是同一基础对象的所有子类(我们称它为 RVSuperClass,它本身是 NSManagedObjec
为什么我做不到 NSLog(@"mySet count: %@", [mySet count]); 然后使用 NSSet? (如果我确实使用它,应用程序会因“EXC_BAD_ACCESS”而崩溃 我已
我的核心数据中有一个一对多的关系设置: Day > Transactions 一天对象将包含交易的 NSSet 和 Date。 在某些时候,我想获取最新的 Day 并通过一段时间(每月和每年)过滤其
我是一名优秀的程序员,十分优秀!