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)
}
問題があり、それは「1」と「0から丸め1」のmyArray
に異なる値を追加します:ここでは、スニペットです。ここ
は、いくつかのデバッグである:
(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
テスト用の実際の値を入力してください。 – matt
それは '0、1、11'のようになります。 11はうまくいきます。しかし、 "1"と "0から丸められた1"は、両方とも1であるにもかかわらず、2つの異なる値のように振る舞います。 – senty