对象数组中带有字符串 属性 的 NSSet

NSSet with string property from array of objects

我有一些东西的数组,我想从这个对象上的 NSString 属性 做一个集合:

@protocol something<NSObject>

@property(nonatomic, readonly) NSString *Id;

@end

我有一些东西:

NSArray<id<something>> *arrayOfSomethings;

我想要获取 Id 属性的 NSSet:

NSSet<NSString *> *idSet = ?; // Calculate from arrayOfSomethings.

我该怎么做?谢谢

您可以使用 valueForKey: 创建一个包含您的 id 的数组,然后使用它创建一个 NSSet

NSSet<NSString *> *idSet = [NSSet setWithArray:[arrayOfSomethings valueForKey:@"id"]];