gpt4 book ai didi

ios - 数组 'contains()' 检查未能检测到舍入值

转载 作者:行者123 更新时间:2023-11-28 06:42:46 25 4
gpt4 key购买 nike

我有 Double 值,我正在使用 floor() 将 0 舍入为 1,并将其他 double 值转换为 Integer。然后,我使用 contains() 检查该值是否存在,如果不存在,则将它们追加到数组中。这是片段:

let radius = center.distanceFromLocation(location) / 1000
let section = floor(radius) == 0 ? 1 : Int(radius)

if !self.myArray.contains(Int(radius)) {
self.myArray.append(section)
}

问题是,它在 myArray 中为“1”和“从 0 舍入的 1” append 了不同的值。

这里是一些调试:

(lldb) po myArray
▿ 3 elements
- [0] : 1
- [1] : 1 { ... }
- [2] : 11 // it's working fine for other numbers

(lldb) po myArray[0]
1

(lldb) po myArray[1]
1

(lldb) po myArray[2]
11


(lldb) p myArray[0]
(Int) $R11 = 1

(lldb) p myArray[1]
(Int) $R10 = 1

最佳答案

您正在检查 !self.myArray.contains(Int(radius)) 这在您的情况下是错误的。

假设数组已经包含一个 1,您知道是否要插入 0.3section 变为 1,但您检查是否已包含 Int(radius) = 0不是。然后再次添加 section (1)。

你的代码应该是

if !self.myArray.contains(section) {
self.myArray.append(section)
}

或者使用 Set 确保每个值最多包含一次。

关于ios - 数组 'contains()' 检查未能检测到舍入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37492189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com