#selector
is just wrapper on function that check syntactics. It test only if method you declare exist in your code. This way you will avoid errors like typo in Objective-C selector strings.
You can't pass pointer to func as you suggest because under hood selectors works in little other way then call method.
I think it works like perform selector on target, not simply invoke selector method.
You can avoid using class name in #selector
. Pass #selector(yourMethod)
or #selector(yourMethodWithParam(_:))
is also valid.