我正在IOS13 beta中使用SwiftUI。将系统更新为beta5(Catalyst,Xcode,IOS)后,我的SwiftUI形状出现了问题,可以在beta4中很好地工作。
beta5中的Path()
构造函数不断返回nil,因此当尝试呈现SwiftUI形状/路径时,我的代码崩溃了。
在尝试查找问题时,我使用简单的ContentView结构建立了一个非常基本的新项目。这个项目显示出相同的行为。
所以目前我不认为这是我的项目环境内的问题,而是框架内的问题。
我还尝试使路径中的结构符合形状协议(以下未注释的代码),但结果是相同的:Path()
中的构造函数func path(...)
也返回nil。
import SwiftUI
//struct CheckShape : Shape {
// func path(in rect: CGRect) -> Path {
//
// var path = Path()
//
// path.move(to: CGPoint(x: rect.minX, y: rect.minY))
// path.addLine(to: CGPoint(x: rect.maxX, y: rect.maxY))
//
// return path
// }
//
//
//}
struct ContentView: View {
var body: some View {
GeometryReader { geo in
Path { p in
let p1 = CGPoint(x: 0.0, y: 0.0)
let p2 = CGPoint(x: geo.size.width, y: geo.size.height)
p.move(to: p1)
p.addLine(to: p2)
}
.stroke(Color.black, lineWidth: 1.0)
}
}
}
当我在模拟器中(或在设备上)运行代码并在路径封闭中中断时,我看到p为零,结果代码以“线程1:EXC_BAD_INSTRUCTION”(代码= EXC_I386_INVOP,子代码= 0x0)'
有人看到过相同的行为并且可以提出解决方案/解决方法吗?