簡體   English   中英

如何修復'無法將'[Any]'類型的值轉換為強制類型'String'的錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM