gpt4 book ai didi

objective-c - NSSet 使用谓词返回匹配给定类的对象

转载 作者:太空狗 更新时间:2023-10-30 03:36:12 25 4
gpt4 key购买 nike

假设我有一个 NSSet,其中包含 id 类型的对象集合

. . .其中有 CircleShape、SquareShape、HexagonalShape 实例放入其中(不是真正的协议(protocol)或类名)。 .

是否可以使用谓词或另一行代码来返回 CircleShape 的所有实例?

最佳答案

您可以像这样使用基于 block 的谓词:

NSSet *yourSet = ...;
NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
return [evaluatedObject isKindOfClass:[CircleShape class]];
}];
NSSet *filteredSet = [yourSet filteredSetUsingPredicate:pred];

这将返回 CircleShape 的所有实例或 CircleShape 的子类。如果您只需要类的实例而不是子类的实例,请使用 isMemberOfClass

关于objective-c - NSSet 使用谓词返回匹配给定类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14276018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com