If you want to pass nil
arguments into your function, declare the arguments as optionals, like this:
func createImage( ... , answerAction: Bool, targetObject: Any?, actionName: Selector?) -> UIImageView {
Then, inside the function, you'll need to check if they're nil. Also, when you call the function, you'll need to include these arguments in the call, like:
let backgroundImage = customElements.createImage(... , answerAction: false, targetObject: nil, actionName: nil)
Alternatively, you can define default values for the parameters, like this:
func createImage( ... , answerAction: Bool, targetObject: Any = self, actionName: Selector = #selector(defaultAction)) -> UIImageView {
And then you'll need to implement defaultAction
inside class CustomElements
, like this:
@objc func defaultAction() { ... }
In this case, you can omit the last two parameters when calling the function, like:
let backgroundImage = customElements.createImage(... , answerAction: false)
You can also use both techniques, they aren't mutually excludent. Hope that has answered your question.