, (.. [self doNow];), objc_msgSend, objc_msgSend_stret , struct . ( ( , ) () .) , , .
However, just by receiving a selector ( @selector(...)), it does not need to know the types. The selector is just a name, and you specified a name. It's all about what you use the selector for. If you use it in performSelector:, it also does not need to know the types, because this method only works for methods with arguments and return types of objects, so there is no ambiguity. Therefore, there is no need for warning.
source
share