为什么我会获得多个打印行结果 - Xcode控制台

时间:2016-05-21 13:45:51

标签: ios swift

我有一些代码可以重新开始。各种表格视图单元格的高度。

我很困惑为什么我在Xcode控制台中收到多个打印语句,如下所示:

enter image description here

我的代码:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

if (!defaults.boolForKey("purchased")) {

        print("show banner, reduce filmstrip");
        var height: CGFloat = 0
        switch indexPath.row {
        case 0: height = 4
        case 2: height = 70
        default: height = tableView.frame.size.height - 219
        }
        return height }

    else {
        print("hide banner, increase filmstrip");
        var height: CGFloat = 0
        switch indexPath.row {
        case 0: height = 4
        case 2: height = 70
        default: height = tableView.frame.size.height - 169
        }
        return height
    }
}

如何修改我的print("")声明以在XCode控制台中仅实现一(1)打印行输出?

2 个答案:

答案 0 :(得分:1)

方法heightForRowAtIndexPath被调用为您在表格中的多行(您在numberOfRowsInSection中返回的内容,每次都使用不同的indexPath,可能在保存值之前key"已购买"

答案 1 :(得分:0)

根据@Sandeer Salmons和@oren给出的善意指示,我已将我的代码修改为:

struct Static {
            static var token: dispatch_once_t = 0
        }
        dispatch_once(&Static.token) {
        print("show banner, reduce filmstrip");
        }

现在我在控制台中获得了所需的一(1)行打印结果。

像这样:

enter image description here