在Objective-C中,NSObject
有一个调用的类方法load
在第一次加载类时被调用.Swift中的等价物是什么?
@implementation MyClass
+ (void)load
{
[self registerClass];
}
@end
Run Code Online (Sandbox Code Playgroud) 我想为Vapor 3服务器编写一些集成测试,每次运行测试时我都需要有干净的Postgre数据库.我怎样才能做到这一点?似乎迁移不是正确的方法,因为如果数据库尚不存在,它们已经运行过一次.
我创建了一个bundle目标,它的Info.plist
文件指定一个非常特定的类(让我们称之为PrincipalClass
)应该是它的主要类.这个类是用Swift编写的,并且具有该@objc
属性.该Info.plist
文件已正确复制到捆绑包,我已经多次清理和重建项目.
但是,当我从Swift框架加载bundle时,它的主要类是一个不同的类(让我们称之为NotPrincipalClass
).它没有标记@objc
,事实上,它应该是捆绑内部的.我检查bundle.bundleURL
了调试器,并且Info.plist
捆绑包中的文件确实说它应该是PrincipalClass
; 但是当我检查时bundle.infoDictionary
,该NSPrincipalClass
属性读NotPrincipalClass
作一个字符串!(信息字典还包含几个未由Info.plist
文件指定的键,DTCompiler
例如.)
如果我完全删除NotPrincipalClass
,我会得到另一个内部类,这仍然完全不是我的主要类.
我彻底检查了构建日志NotPrincipalClass
,除了编译之外我没有看到任何提及.
什么可能导致这个?我该怎么做才能解决它?