2016-05-04 7 views
5

Ich sehe nicht, warum dies kompilieren:Kann einen Selektor für viewWillAppear erstellen, aber nicht für viewDidLoad

let viewWillAppearSelector = #selector(UIViewController.viewWillAppear(_:)) 

Aber nicht dies:

let viewDidLoadSelector = #selector(UIViewController.viewDidLoad()) 

Der Fehler ist

Msgstr "Verwendung des Instanzmembers 'viewDidLoad' beim Typ UIViewController; did Sie meinen stattdessen einen Werttyp 'UIViewController'?

Warum ist letzteres nicht kompliziert, aber erstere?

Update: Habe ich es zu diesem und jetzt kompiliert:

let viewDidLoadSelector = #selector(UIViewController.viewDidLoad) 

Aber ich bin nicht 100%, warum das

Antwort

6

Wenn eine Methode nehmen keine Parameter Sie das weglassen müssen, ist Klammern. In einer zukünftigen Version von Swift wird Ihr Code zu einem Fehler.

Versuchen

let viewDidLoadSelector = #selector(UIViewController.viewDidLoad) 

statt.

Verwandte Themen