【发布时间】:2015-04-07 06:38:39
【问题描述】:
我正在编写一个通过采用socket.IO-objc 来访问套接字的单例类,这是我目前所做的:
class Singleton_SocketManager: NSObject, SocketIODelegate {
var isSocketConnected: Bool = false
var socket: SocketIO
override init() {
super.init()
}
class var sharedInstance: Singleton_SocketManager {
struct Static {
static var onceToken: dispatch_once_t = 0
static var instance: Singleton_SocketManager? = nil
}
dispatch_once(&Static.onceToken) {
Static.instance = Singleton_SocketManager()
}
return Static.instance!
}
}
然而编译器抱怨:
Property 'self.socket' not initialized at super.init call
我应该如何在此处编写我的 init 方法以使编译错误消失?
顺便说一下,我上面的代码是从objective-c转过来的,在obj-c中,SocketIO是这样初始化的:
self.socket = [[SocketIO alloc] initWithDelegate:self];
如果我这样放置 init 方法:
override init() {
self.socket = SocketIO(delegate: self)
super.init()
}
它抱怨:
self used before super.init call
【问题讨论】:
标签: ios sockets swift singleton