最近,我注意到“预览”已停止在我正在使用的应用中工作。我正在使用最新的Xcode和Catalina(Beta 7)。 如果我向项目添加新的View-TestView,则其预览将失败。这没有任何修改,即默认的“ Hello World”视图。诊断说“ TestView”不是“ MyProject”的成员类型。 有关如何解决此问题的任何想法?
如果我创建一个新项目,则“预览”工作正常。
该项目可以在实际的设备或模拟器上正常运行。
完整的诊断消息是: 'TestView'不是'MyProject'的成员类型
failedToBuildDylib:/Users/nigelhamilton/Library/Developer/Xcode/DerivedData/MyProject-bgufjjqbmfuwcaahjswocfzmwsgx/Build/Intermediates.noindex/Previews/MyProject/Intermediates.noindex/MyProject.build/Debug-iphonesimulator普通/x86_64/TestView.2.preview-thunk.swift:23:32:错误:“ TestView”不是“ MyProject”的成员类型 typealias TestView = MyProject.TestView ~~~~~~~~~~ ^ /Users/nigelhamilton/Library/Developer/Xcode/DerivedData/MyProject-bgufjjqbmfuwcaahjswocfzmwsgx/Build/Intermediates.noindex/Previews/MyProject/Intermediates.noindex/MyProject.build/Debug-iphonesimulator/MyProject.build/Object_normal/x86 .2.preview-thunk.swift:16:6:错误:找不到“ body”的替换访问器 @_dynamicReplacement(for:body)private var __preview__body:some View { ^
我当前正在从我的项目(或至少该项目的重复项目)中删除代码,以查看它最终是否再次开始显示预览。我在此方面有两点努力,但最终成功了,但是删除了大部分代码。因此,我试图缩小问题的可能范围。
答案 0 :(得分:10)
我想我已经解决了这个问题。我犯了一个听起来很愚蠢的错误。该项目使用CoreData,我为其中一个实体指定了与该项目相同的名称。 尽管这听起来很疯狂,但该项目可以毫无问题地构建和运行(模拟器或设备)。只是预览变得令人困惑。 我已重命名实体,并且至少可以预览某些视图,包括上述的TestView。 还有一些视图无法正确预览,但是我认为这是由于另一个问题造成的。
答案 1 :(得分:2)
如果这对任何人都有用,我通过将我的CoreData模型属性之一从“ created”(双精度)重命名为“ createdTimestamp”(双精度)来解决“预览不起作用”的问题。