Upvote:1

Aprove answer
NSSet *ids = [setOfSomeSubProtocols mapWithBlock:^id (id<SomeProtocol> object) {
    return [[object someSubProtocolObject] identifier];
}];
NSLog(@"ids: %@", ids);

Upvote:1

[setOfSomeSubProtocols valueForKeyPath:PROTOCOL_KEYPATH(SomeSubProtocol, Id)];

Credit Goes to: stackoverflow.com

Related question with same questions but different answers