This commit is contained in:
parent
232c22789a
commit
8ff8c88a48
10
README.md
10
README.md
@ -81,15 +81,19 @@ socket.on("jsonTest") {data in
|
||||
// Messages that have multiple items are passed
|
||||
// by an array
|
||||
socket.onMultipleItems("multipleItems") {data in
|
||||
if let str = data[0] as? String {
|
||||
if data == nil {
|
||||
return
|
||||
}
|
||||
|
||||
if let str = data![0] as? String {
|
||||
println(str)
|
||||
}
|
||||
|
||||
if let arr = data[1] as? [Int] {
|
||||
if let arr = data![1] as? [Int] {
|
||||
println(arr)
|
||||
}
|
||||
|
||||
if let obj = data[4] as? NSDictionary {
|
||||
if let obj = data![4] as? NSDictionary {
|
||||
println(obj["test"])
|
||||
}
|
||||
}
|
||||
|
||||
@ -24,8 +24,8 @@
|
||||
|
||||
class SocketEventHandler {
|
||||
let event:String!
|
||||
let callback:NormalCallback!
|
||||
let callbackMult:MultipleCallback!
|
||||
let callback:NormalCallback?
|
||||
let callbackMult:MultipleCallback?
|
||||
|
||||
init(event:String, callback:NormalCallback) {
|
||||
self.event = event
|
||||
@ -37,11 +37,19 @@ class SocketEventHandler {
|
||||
self.callbackMult = callback
|
||||
}
|
||||
|
||||
func executeCallback(item:AnyObject?) {
|
||||
callback(item)
|
||||
}
|
||||
|
||||
func executeCallback(items:[AnyObject]) {
|
||||
callbackMult(items)
|
||||
func executeCallback(item:AnyObject?, multiple:Bool) {
|
||||
if callback == nil || multiple {
|
||||
if item != nil && item is NSArray {
|
||||
callbackMult?(item as? NSArray)
|
||||
} else {
|
||||
if item != nil {
|
||||
callbackMult?([item!])
|
||||
} else {
|
||||
callbackMult?(nil)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
callback?(item)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -25,7 +25,7 @@
|
||||
import Foundation
|
||||
|
||||
typealias NormalCallback = (AnyObject?) -> Void
|
||||
typealias MultipleCallback = (AnyObject...) -> Void
|
||||
typealias MultipleCallback = (NSArray?) -> Void
|
||||
|
||||
class SocketIOClient: NSObject, SRWebSocketDelegate {
|
||||
let socketURL:String!
|
||||
@ -188,12 +188,8 @@ class SocketIOClient: NSObject, SRWebSocketDelegate {
|
||||
// println("Should do event: \(event) with data: \(data)")
|
||||
|
||||
for handler in self.handlers {
|
||||
if handler.event == event && !multipleItems {
|
||||
handler.executeCallback(data)
|
||||
} else if handler.event == event && multipleItems {
|
||||
if let arr = data as? [AnyObject] {
|
||||
handler.executeCallback(arr)
|
||||
}
|
||||
if handler.event == event {
|
||||
handler.executeCallback(data, multiple: multipleItems)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user