我有一个班级
class Service: NSObject {
let wirlessSerivce: WirlessSerivce
override init()
{
super.init()
wirlessSerivce = WirlessSerivce()
wirlessSerivce.delegate.addDelegate(self)
}
}
我遇到了这两个问题:
Property 'self.wirlessSerivce' not initialized at super.init call
Immutable value 'self.wirlessSerivce' may only be initialized once (change let to var)
我想要实现的目标是创建wirlessSerivce
并通过委托订阅Service
类到wirlessSerivce
更新。我使用多播委托,如果Service
wirlessSerivce
我也可以这样做:
class Service: NSObject {
let wirlessSerivce = WirlessSerivce() {
didSet {
wirlessSerivce.delegate.addDelegate(self)
}
}
据我所知,让wirlessSerivce = WirlessSerivce()甚至在类获取其初始化方法之前就会创建一个实例。正确?
似乎这段代码有效:
class Service: NSObject {
var wirlessSerivce: WirlessSerivce!
override init()
{
super.init()
wirlessSerivce = WirlessSerivce()
wirlessSerivce.delegate.addDelegate(self)
}
}
但是这里有一些问题:var是针对可变属性的,我实际上并不需要可变服务。 (!)
表示该实例将在从任何地方使用之前进行初始化。但我在init
func初始化它,我真的需要用(!)