比较NSIndexPath Swift

比较NSIndexPath Swift,第1张

概述如果我为UITableView声明了一个NSIndexPath常量,使用==运算符进行比较是否有效? 这是我一贯的声明: let DepartureDatePickerIndexPath = NSIndexPath(forRow: 2, inSection: 0) 然后我的功能: override func tableView(tableView: UITableView!, heightForR 如果我为UItableVIEw声明了一个NSIndexPath常量,使用==运算符进行比较是否有效?

这是我一贯的声明:

let DepartureDatePickerIndexPath = NSIndexPath(forRow: 2,inSection: 0)

然后我的功能:

overrIDe func tableVIEw(tableVIEw: UItableVIEw!,heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGfloat {    var height: CGfloat = 45    if indexPath == DepartureDatePickerIndexPath{        height = departureDatePickerShowing ? 162 : 0    } else if indexPath == ArrivalDatePickerIndexPath {        height = arrivalDatePickerShowing ? 162 : 0    }    return height}

这当然可以正常工作,但是安全吗?我假设,因为它的工作,NSIndexPath对象上的==运算符是比较部分和行属性而不是实例。

我们来做一个非常简单的测试:
import UIKitvar indexPath1 = NSIndexPath(forRow: 1,inSection: 0)var indexPath2 = NSIndexPath(forRow: 1,inSection: 0)var indexPath3 = NSIndexPath(forRow: 2,inSection: 0)var indexPath4 = indexPath1println(indexPath1 == indexPath2) // prints "true"println(indexPath1 == indexPath3) // prints "false"println(indexPath1 == indexPath4) // prints "true"println(indexPath1 === indexPath2) // prints "true"println(indexPath1 === indexPath3) // prints "false"println(indexPath1 === indexPath4) // prints "true"

是的,可以安全地使用==与NSIndexPath

作为一个附注,在Swift中的==总是值得比较。 ===用于检测何时两个变量引用完全相同的实例。有趣的是,indexPath1 === indexPath2显示,NSIndexPath被构建为在值匹配时共享同一个实例,所以即使你在比较实例,它仍然是有效的。

总结

以上是内存溢出为你收集整理的比较NSIndexPath Swift全部内容,希望文章能够帮你解决比较NSIndexPath Swift所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1053350.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存