I've seen objects which require the parameter, selector. What is the general concept in understanding a selector?
An example of choosing a selector is the NSTimer where my selector I have chosen is a function that increments the counter.
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: ("incrementCounter"), userInfo: nil, repeats: true)
A selector is a concept from Objective-C that represents a message to be sent (i.e. a method to be called) dynamically at run time. When you set up something to be done via a selector, you know which message will be sent, but not necessarily what its parameters are. (And sometimes not even which object it'll be sent to.)
You can consider selectors a relative of closures/blocks, since they let you package up some code to be called later and hand it off to some other function. However, a closure must be specified/resolved at compile time, so it's less dynamic than a selector.
Selectors are great for "loose binding" concepts like control actions. You can use a selector to choose in Interface Builder which method a button should call when clicked, even though your app isn't actually running in IB; or you can say "this button should call paste:
on whatever text view has keyboard focus", not knowing when you set up the button which view that'll be (because keyboard focus changes all the time).
Selectors in ObjC predate blocks/closures, so historically, selectors were the primary way to tell an API things like "call this method later", which is why you find them throughout Cocoa for patterns like timers, array sorting, and undo even when such patterns might benefit more from the tight binding of closures/blocks.
For more on using selectors in Swift, see Interacting with Objective-C APIs in Using Swift with Cocoa and Objective-C and/or this SO answer. For more on selectors and Cocoa in general, see Cocoa Core Competencies: Selector.