Swift Charts 的 ChartXVisibleDomain 挂起或崩溃

Mar*_*sel 2 swift swiftui swiftui-charts

如果我在任何地方(Xcode Simulator、Playground 等)使用以下Swift Charts ,它会挂起或崩溃。 Chart一旦我删除chartXVisibleDomain修改器,一切都会正常。还有其他人遇到同样的问题和/或知道如何解决它吗?我使用的是 Xcode 版本 15.0 (15A240d)。

import SwiftUI
import Charts

struct ContentView: View {
    
    let data: [(day: Date, value: Int)] = [
        (Calendar.current.date(byAdding: .day, value: 0,   to: .now)!, 1),
        (Calendar.current.date(byAdding: .day, value: -1,  to: .now)!, 2),
        (Calendar.current.date(byAdding: .day, value: -3,  to: .now)!, 3),
        (Calendar.current.date(byAdding: .day, value: -10, to: .now)!, 4),
        (Calendar.current.date(byAdding: .day, value: -20, to: .now)!, 5)
    ]
    
    var body: some View {
        Chart(data, id: \.day) { (day, value) in
            BarMark(
                x: .value("Date", day, unit: .day),
                y: .value("Value", value)
            )
        }
        .chartXVisibleDomain(length: 2)
    }
}
Run Code Online (Sandbox Code Playgroud)

Swe*_*per 5

通过反复试验,我发现chartXVisibleDomain在这种情况下传递给的数字应该以为单位。这是有道理的,因为Date有点像 的包装器timeIntervalSince1970,以秒为单位。

该应用程序挂起可能是因为您正在绘制一个非常非常宽的图表 - 您是说您只想一次查看整个 20 天数据中的 2 秒。

你可以做:

.chartXVisibleDomain(length: 86400*2) // 86400 seconds in 24 hours
Run Code Online (Sandbox Code Playgroud)

反而。