2017-02-28 58 views
2

現在,在Xcode(8.3b3)中,使用Swift 3.1,有一個新的編譯器警告說方法initialize()將在未來的版本中被禁止,方法swizzling有替代方法嗎?swift在Swift中的方法3.1

+0

你可以寫在Objective-C的混寫代碼? – matt

+1

你仍然可以在Swift中調試,但是當一個類被加載時,Swift沒有辦法自動執行代碼。所以你必須在某個地方明確地啓動混合(除非你像暗示的那樣混合使用Objective-C)。 –

+0

比較http://stackoverflow.com/questions/28422468/method-load-defines-objective-c-class-method-load-which-is-not-permitted-by。 –

回答

0

實現在應用程序委託而是通過類擴展添加 方法混寫的方法混寫,只需一個方法添加到應用程序 委託時 應用(_要執行中:didFinishLaunchingWithOptions :)被調用。根據 您正在修改的類,這可能已足夠,並且應該保證您的代碼每次都被執行。

來源:NsHipster

+0

這種方法不適用於在應用程序擴展執行上下文中初始化的類,因爲在這種情況下不調用AppDelegate的方法。 –