Klassenerweiterung gegen Klassenkategorie

Klassenerweiterungen @interface Class () sind viel leistungsfähiger und können Variablen in die Klasse einfügen. Kategorien @interface Class (Category)können nicht. Welche anderen Unterschiede gibt es und wann sollte man eine Kategorie über eine Klassenerweiterung