处理 initialize() 的弃用【译】
在将项目迁移到 Swift 3.1 后,我受到了几个警告的欢迎。它们似乎都没有特别难以修复,只是除了这个之外:
Method ‘initialize()’ defines Objective-C class method ‘initialize’, which is not guaranteed to be invoked by Swift and will be disallowed in future versions.
Ouch。一些类重写了 NSObject
的 initialize()
函数,警告清楚地表明这已不在合适(或者至少,但它应该不会很快发生)。一个非常类似的方法 - load()
,它自 Swift 1.2 以来一直没有,所以看起来初始化将很快跟进。它扮演着一个独特的角色,如 NSObject
文档所述:
The runtime sends
initialize()
to each class in a program just before the class, or any class that inherits from it, is sent its first message from within the program.