Tweak multipleitems. I still don't know if I like this

This commit is contained in:
Erik 2015-02-03 11:21:03 -05:00
parent 8ff8c88a48
commit 115edb1456
2 changed files with 14 additions and 10 deletions

View File

@ -26,6 +26,7 @@ class SocketEventHandler {
let event:String! let event:String!
let callback:NormalCallback? let callback:NormalCallback?
let callbackMult:MultipleCallback? let callbackMult:MultipleCallback?
var multiEvent = false
init(event:String, callback:NormalCallback) { init(event:String, callback:NormalCallback) {
self.event = event self.event = event
@ -35,19 +36,18 @@ class SocketEventHandler {
init(event:String, callback:MultipleCallback) { init(event:String, callback:MultipleCallback) {
self.event = event self.event = event
self.callbackMult = callback self.callbackMult = callback
self.multiEvent = true
} }
func executeCallback(item:AnyObject?, multiple:Bool) { func executeCallback(item:AnyObject?, items:NSArray? = nil) {
if callback == nil || multiple { if self.multiEvent {
if item != nil && item is NSArray { if items != nil {
callbackMult?(item as? NSArray) callbackMult?(items)
} else { } else if item != nil {
if item != nil {
callbackMult?([item!]) callbackMult?([item!])
} else { } else {
callbackMult?(nil) callbackMult?(nil)
} }
}
} else { } else {
callback?(item) callback?(item)
} }

View File

@ -189,7 +189,11 @@ class SocketIOClient: NSObject, SRWebSocketDelegate {
for handler in self.handlers { for handler in self.handlers {
if handler.event == event { if handler.event == event {
handler.executeCallback(data, multiple: multipleItems) if data is NSArray {
handler.executeCallback(nil, items: (data as NSArray))
} else {
handler.executeCallback(data)
}
} }
} }
} }