2017-02-28 55 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的方法。 –