A category is a way of adding additional methods to an existing class, without having to subclass it. For example, you could add a category to the NSString class to add a method that converts a string to a URL.
A class extension is a way of adding additional private methods and properties to an existing class. For example, you could add a class extension to the UIViewController class to add a private method that handles the loading of view data from a remote server.