Xcode 12和SwiftUI:无法在此文件中预览-无法更新预览

jtw3ybtb  于 2022-09-19  发布在  Swift
关注(0)|答案(6)|浏览(342)

Xcode12上的预览版似乎停止了!正在尝试预览SwiftUI文件模板,但收到以下错误。有什么办法解决这个问题吗?尝试清理构建文件夹、删除派生数据并重新启动Xcode,但都无济于事!

在Catalina 10.15.6上。

RemoteHumanReadableError: Failed to update preview.

The preview process appears to have crashed.

Error encountered when sending 'prepare' message to agent.

==================================

|  RemoteHumanReadableError: The operation couldn’t be completed. (BSServiceConnectionErrorDomain error 3.)
|  
|  BSServiceConnectionErrorDomain (3):
|  ==BSErrorCodeDescription: OperationFailed

我尝试预览的代码(来自SwiftUI新文件模板):

import SwiftUI

struct SwiftUIView: View {
    var body: some View {
        Text("Hello, World!")
    }
}

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}
wqlqzqxt

wqlqzqxt1#

如果您的SwiftUIView使用ObservableObject作为environmentObject,请尝试以下操作:

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView().environmentObject(YourObservableObjectClass())
    }
}
wwwo4jvm

wwwo4jvm2#

显然,这是FiRestore的错误,这很可能是原因:XCode 12 Preview Crashes when adding Firebase SDK Swift UI 2.0。此时最好的解决方案是调用POD UPDATE,这应该可以解决问题。我在Xcode12,iOS 13+上进行了验证。

z9smfwbn

z9smfwbn3#

如果您使用SwiftUI(ObservableObject,@Environment Object)

添加到预览

.environmentObject(ModelData())

--

struct LandmarkDetail_Previews: PreviewProvider {
        static var previews: some View {

            LandmarkDetail(landmark: ModelData().landmarks[1])
                .environmentObject(ModelData())
        }
    }

我的模型数据

final class ModelData:ObservableObject
{
   @Published var landmarks: [Landmark] = load("landmarkData.json")
}
hc2pp10m

hc2pp10m4#

大家好。我设法解决了这个问题。只需注解didFinishLaunchingWithOptions方法中的所有内容并预览SwiftUI就可以了。

but5z9lq

but5z9lq5#

错误:无法在此文件中预览

Kerim.ba给出的答案对我很管用:

您是否尝试删除派生数据旁边的Xcode应用程序状态?Xcode应用程序状态保存在路径~/Library/Saved\Application\State/com.apple.dt.Xcode.avedState-kerim.ba中

2nc8po8w

2nc8po8w6#

当我更新Firebase Analytics(版本6.33.0)时,我也遇到了同样的问题。注解掉下面这一行就解决了这个问题。

FirebaseApp.configure()

相关问题