我最近注意到一些代码执行类似ClassName.self()的实例初始化,例如: let realm = try! Realm.self() 从输出和之后的用法来看,就好像没有它 – Realm() 使用.self执行init是否有任何特定的原因或用法
let realm = try! Realm.self()
从输出和之后的用法来看,就好像没有它 – Realm()
使用.self执行init是否有任何特定的原因或用法?
这有点推测,但我相信在Realm的上下文中使用Type.self()的地方遵循一个误解的约定,后来(一些无关紧要)Swift团队解决bug的影响> SR-899: .self
can be omitted if a function has only one parameter
Realm团队的以下提交正在为上述错误的预期解决做准备:
> #3712 – explicitly use ‘Type.self
‘ notation when passing types to Realm Swift APIs
上面提交的更改(Type更新为Type.self,在适当的上下文中)可能激发了使用Realm在初始化上下文中使用Type.self的代码库,即Type.self().然而,这是.self后缀的多余使用.