从Swift中的struct中提取数据

问题描述 投票:0回答:2

我已经制作了一个结构,我正在传递我的数据。数据在一个数组中。我正在运行一个for循环来从中获取值,但我没有得到完整的值。假设循环运行时数组中有5.0值。它首先显示我5,然后.,然后0。我想让它给我5.0而不是分开价值观。

我的循环是这样的:

for price in ItemDataSource.sharedInstance.items[indexPath.row].price! {
    print(price)
}

它在控制台中显示:

enter image description here

这是我的物品类:

class Item : NSObject {
    var name : String?
    var price : String?
    var  itemDdescription : String?
}

class ItemDataSource : NSObject {
    var items = [Item]()
    static let sharedInstance = ItemDataSource()
    private override init() {}
}

在这里,我将我的价值观传递给它:

let item = Item()
item.name = itemName
item.price = String(result)
item.itemDdescription = String(describing: description)
ItemDataSource.sharedInstance.items.append(item)
swift
2个回答
1
投票

说明:

ItemDataSource.sharedInstance.items[indexPath.row].price!是一个String,迭代它意味着迭代其中的字符。因此,如果`ItemDataSource.sharedInstance.items [indexPath.row] .price!“是”5.0“,它将打印”5“,”。“然后”0“。

要获得给定行的价格,只需使用

let price = ItemDataSource.sharedInstance.items[indexPath.row].price!

正如@John Ottenlips建议的那样。


0
投票

你的循环可能是不必要的。 indexPath.row将增加并允许您在此委托方法中迭代您的项目。如果你只想尝试每个单元一个价格尝试

let price = ItemDataSource.sharedInstance.items[indexPath.row].price!

print(price)

一般的代码气味是在返回单元格的方法中有一个for循环。

© www.soinside.com 2019 - 2024. All rights reserved.