SwiftUI:Path()在iOS13 Beta 5中返回nil

时间:2019-08-02 08:12:33

标签: swift swiftui ios13

我正在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)'

有人看到过相同的行为并且可以提出解决方案/解决方法吗?

0 个答案:

没有答案