Class extension vs class category

Extensiones de clase@interface Class () son mucho más potentes y pueden inyectar variables en la clase. Categorías@interface Class (Category) no puede.

¿Qué otras diferencias hay y cuándo se debe usar una categoría sobre una extensión de clase?