ios - For-in 循环要求 '[UserVehicles]?' 符合 'Sequence' ;你的意思是解开可选的吗? swift

标签 ios swift list for-loop for-in-loop

我有一个用于 API 返回的数据模型,它是这样的:

struct VehicleData: Codable {
    
    let _embedded: Embedded
    
 }

struct Embedded: Codable {
    let userVehicles: [UserVehicles]
}


struct UserVehicles: Codable {
    let id: String
    let images: [String]
    let userId: String
    let vehicle: Vehicle
    let originalPrice: OriginalPrice
    let hasBasicInsurance: Bool

}

我已经使用回调函数将它传递给我的 ViewController,现在我想查看 useVehicles 列表,有多少车辆有基本保险。基本上,vehicleList?._embedded.userVehicles[i] = true这是我在 ViewController 中使用车辆数据的功能代码:
    var vehicleManager = VehicleManager()
    var vehicleList: VehicleData?
    var i: Int = 0
    
    @IBOutlet weak var tableView: UITableView!
       
    override func viewDidLoad() {
        super.viewDidLoad()
        
        vehicleManager.retrieveUserVehicle()
        vehicleManager.onDataUpdate = { [weak self] (data: VehicleData) in
            self?.useData(data: data)
        }
        
        tableView.dataSource = self
        tableView.delegate = self
        tableView.tableFooterView = UIView() //remove empty tableView cells
        tableView.register(UINib(nibName: Constants.vehicleListCellNibName, bundle: nil), forCellReuseIdentifier: Constants.vehicleListToBeInsuredIdentifier)
        
    }
    
    func useData(data: VehicleData) {
        vehicleList = data
        
// code below has issues.... 
for i in [vehicleList?._embedded.userVehicles] {
            
            if let vechile = vehicleList?._embedded.userVehicles[i].hasBasicInsurance {
                if vehicle == true {
                    i = i + 1
                    print(">>number of of insured vehidle: \(i)")
                } else {
                    print(">>>number of of insured vehidle: \(i)")
                }
            }
            
            
            
        }
        
    }

enter image description here
你知道如何解决吗?

最佳答案

您需要为 optional 提供默认值作为一种好习惯,而不是强制展开

for i in vehicleList?._embedded.userVehicles ?? [] { }

关于ios - For-in 循环要求 '[UserVehicles]?' 符合 'Sequence' ;你的意思是解开可选的吗? swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64404208/

相关文章:

ios - Xcode5 上的 libcurl 链接器错误,但在 Xcode 4.6 上工作正常

ios - 什么时候进行ios自动屏幕捕获?

ios - 如何在每次在自定义单元格中选择复选标记时更改按钮标题

Swift:解除模态呈现的 UICollectionViewController,传递数据

java - 添加从列表返回的元素

ios - 如果在 UIWebview iOS 中加载,则重定向特定 URL

ios - 处理嵌套 UIScrollView 中的冲突手势

ios - 无法在侧边菜单中进行 segue

Python从类列表中选择项目

python - 一旦我有主机名就比较文件