2
我正在構建一個服務器端將一個JSON數組傳遞給客戶端的套接字方法。有沒有辦法從Swift中的socket.io方法返回一些東西?
之後,我想傳遞數據以使用其他函數。
但是在斯威夫特socket方法限制了我這樣做,因爲它是一個void函數
沒有任何東西可以從封閉{}遁法的例子,它看起來像我只能在套接字方法內執行操作
是否有任何解決方法,我可以操縱套接字方法以便從該範圍中獲取數據?
我正在構建一個服務器端將一個JSON數組傳遞給客戶端的套接字方法。有沒有辦法從Swift中的socket.io方法返回一些東西?
之後,我想傳遞數據以使用其他函數。
但是在斯威夫特socket方法限制了我這樣做,因爲它是一個void函數
沒有任何東西可以從封閉{}遁法的例子,它看起來像我只能在套接字方法內執行操作
是否有任何解決方法,我可以操縱套接字方法以便從該範圍中獲取數據?
我不知道具體有關socket.io但如果它的異步操作的典型情況下,你可以換你socket.io調用一個新的完成處理程序,例如:
// I suppose the data is of type NSData.
func readDataFromSocketIO(completion: (data: NSData) ->()) {
socket.on("connect") { data, ack in
// ...
completion(data: data)
}
}
你用後封稱之爲:
readDataFromSocketIO() { data in
// use `data` here
}
如果你想填充一個屬性:
var dataFromSIO: NSData? {
didSet {
print("We got new data!")
}
}
func populate() {
readDataFromSocketIO() { data in
self.dataFromSIO = data
}
}
當然,這些只是一些簡單的例子,有很多方法可以做到這一點,你必須適應你自己的類和方法。
另外,請注意,我不是一個socket.io用戶,我沒有在Xcode中測試我的代碼示例,但是如果我對此問題的診斷是正確的,它們應該是正確的。