jar*_*ryd 8 objective-c nsarray nsset
如何NSSet基于属性从数组创建对象.
例如,对象数组,每个对象都具有对type属性的强引用,并且数组中存在多个每种类型的对象.如何将其转变为NSSet持有每种类型的单个对象.
NSSet *distinctSet = [NSSet setWithArray:[array valueForKeyPath:@"@distinctUnionOfObjects.property"]];
Run Code Online (Sandbox Code Playgroud)
你会使用:
NSSet* mySetWithUniqueItems= [NSSet setWithArray: yourArray];
Run Code Online (Sandbox Code Playgroud)
无论数组中的对象类型如何,这都应该有效,并且只会使用数组中出现的任何重复对象一次来填充 NSSet。
我希望这有帮助。
更新:下一个最好的事情是:首先使用类名和对象属性的串联,然后使用上述方法。
self.concatenatedArray=[NSMutableArray arrayWithCapacity:4];
for (TheClass* object in self.myArray)
[self.concatenatedArray addObject:[NSString stringWithFormat:@"%@-%@",[object class], object.theProperty]];
self.mySet=[NSSet setWithArray:self.concatenatedArray];
Run Code Online (Sandbox Code Playgroud)
我不确定您将使用 NSSet 输出做什么,但您可能可以修改串联元素以在 NSSet 输出中包含您需要的信息。
| 归档时间: |
|
| 查看次数: |
9883 次 |
| 最近记录: |