从Swift

时间:2018-03-01 20:35:20

标签: swift

我制作了一个我传递数据的结构。数据在一个数组中。我正在运行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)

2 个答案:

答案 0 :(得分:1)

说明:

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

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

即可
function getDates(startDate, endDate, interval) {
const duration = endDate - startDate;
const steps = duration / interval;
return Array.from({length: steps+1}, (v,i) => new Date(startDate.valueOf() + (interval * i)));
}
const startDate = new Date(2017,12,30);
const endDate = new Date(2018,1,3);
const dayInterval = 1000 * 60 * 60 * 24; // 1 day
const halfDayInterval = 1000 * 60 * 60 * 12; // 1/2 day

console.log("Days", getDates(startDate, endDate, dayInterval));
console.log("Half Days", getDates(startDate, endDate, halfDayInterval));
正如@John Ottenlips建议的那样。

答案 1 :(得分:0)

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

ClassA

ClassC

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