One, a category is a way to add a new method to an existing class.
Second, the limitations of the category.
1, a new instance variable cannot be added to the class. The category has no location to accommodate the instance variable.
2, name conflict, that is, the method in the category is the same as the existing method. When a name conflict occurs, the category has a higher priority. Your category name will completely replace the original method, so you can no longer use the initial method. Some programmers add a prefix to their category method names to ensure that no name collisions occur.
Three, selector.
1, the selector is just a method name, but it is encoded in a special way that the OBJECTIVE-C runtime uses to execute queries quickly. You can use the @selector () precompiled Directive selector, where the method name is in parentheses.
2,nsobject provides a method called Respondstoselector: that asks the object to determine whether it can respond to a particular message.
Reference: "Objective-c Basic Course"
"Reading notes" ios-category