Objective-C RGB para HSB

Digamos que eu tenho a cor FF0000, que é vermelha. Encontrar uma cor mais escura é fácil, basta digitar talvez CC em vez de FF, mas digamos que tenho a cor AE83FC, que é uma cor complicada, como diabos eu encontraria uma versão mais clara ou mais escura automaticamente?

Achei que a maneira mais fácil de fazer isso é converter meu RGB em HSB [Matiz, Saturação, Brilho]

Como eu faria isso no Objective-C?

Digamos que eu tenho um RGB que é: 1.0, 0.0, 0.0. Isso é vermelho.

CGFloat r = 1.0;
CGFloat g = 0.0;
CGfloat b = 0.0;

Como converter isso em HSB e depois transformar as cores e retornar ao RGB para que eu possa usar CGContextRGBSetFillColor?

Existem funções HSB?

Por favor ajude. :)