![](/img/trans.png)
[英]cannot convert value of type [Struct] to type [string] in coercion swift
[英]How to fix 'Cannot convert value of type '[Any]' to type 'String' in coercion' error in swift
我使用socket.io websocket從后端獲取數據,並使用environmentObject將其推送到View(SwiftUI),但問題是我無法獲取數據,因為它的類型為Any
我已經嘗試過使用“ guard var data = socketData else {return}”,但是存在此錯誤:條件綁定的初始化程序必須具有可選類型,而不是“ [Any]”
import SwiftUI
import SocketIO
import Combine
let manager = SocketManager(socketURL: URL(string: "http://localhost:30000/ios")!, config: [.log(true), .compress])
let socket = manager.defaultSocket
class Socket: BindableObject {
let didChange = PassthroughSubject<Socket,Never>()
var days: String = "Loading..." {
didSet {
didChange.send(self)
}
}
static let sharedInstance = Socket()
init() {
socket.on(clientEvent: .connect) {data, ack in
print("socket connected")
}
socket.on("dailyWeather") {data, ack in
print("just a test")
var data = data as String //Here is the current error
/*do {
let decoder = JSONDecoder()
decoder.keyDecodingStrategy = .convertFromSnakeCase
let city = try decoder.decode(day.self, from: data)
self.weatherData.city = city.name
} catch {
print(error)
}*/
self.days = "cur"
}
}
func establishConnection() {
socket.connect()
}
func closeConnection() {
socket.disconnect()
}
}
錯誤:在強制中無法將類型“ [Any]”的值轉換為類型“ String”
得到了解決方案:
var arr = data[0]
yourString: String = (arr as AnyObject).description
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.