如何修复Swift 5.1中的“使用未声明类型”错误?

阿米尔号

我是Swift和iOS开发的新手,并尝试按照官方的SwiftUI教程学习。我在第5部分(https://developer.apple.com/tutorials/swiftui/handling-user-input)中遇到错误我认真地执行了每个步骤,在执行了第5部分的步骤1之后,Xcode弹出错误“使用未声明的类型'UserData'”。我试着无视并遵循。但是,我的LandmarkList,LandmarkDetail,SceneDelegate文件警告我相同的错误。我什至检查了从教程页面下载的项目的完整版本。除了未做的部分外,它们看上去完全相同。在座的人有和我相似的经历吗,或者您能提供一些建议吗?谢谢!

我正在使用Xcode 11和Swift 5。

这是我在“模型”文件夹下创建的UserData类。

import Combine
import SwiftUI

final class UserData: ObservableObject {
    @Published var showFavoritesOnly = false
    @Published var landmarks = landmarkData
}

这是保持提示错误的rootview文件。

import SwiftUI

struct LandmarkList: View {
    @EnvironmentObject private var userData: UserData  // Use of undeclared type 'UserData'

    var body: some View {
        NavigationView {
            List { // Unable to infer complex closure return type; add explicit type to disambiguate
                Toggle(isOn: $userData.showFavoritesOnly){ // Use of unresolved identifier '$userData'
                    Text("Favorites Only")
                }

                ForEach(userData.landmarks) { landmark in
                    if !self.userData.showFavoritesOnly || landmark.isFavorite {
                        NavigationLink(destination: LandmarkDetail(landmark: landmark)
                            .environmentObject(self.userData)) {
                            LandmarkRow(landmark: landmark)
                        }
                    }
                }
            }
            .navigationBarTitle(Text("Landmarks"))
        }
    }
}

struct LandmarkList_Previews: PreviewProvider {
    static var previews: some View {
        ForEach(["iPhone SE", "iPhone XS Max"], id: \.self) { deviceName in
            LandmarkList()
                .previewDevice(PreviewDevice(rawValue: deviceName))
                .previewDisplayName(deviceName)
        }
        .environmentObject(UserData()) // Use of unresolved identifier 'UserData'
    }
}
叶夫根尼·雷琴科(Yevgeniy Leychenko)

您需要清理并关闭Xcode,然后删除“派生数据”,然后重新打开Xcode。我在做苹果教程时一直遇到这个问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Swift编程中修复NSInternalInconsistencyException

Swift编译器错误:在框架中使用未声明的类型

在Swift中使用未声明的类型'UIImage'

在Swift中导入Swift框架:“使用未声明的类型'MyCustomView'”

在Swift中对我自己的ViewController进行单元测试时,使用未声明的类型'ViewController'吗?

如何修复Qt5中的gstreamer错误?

为什么在Swift中发生“使用未声明类型的UITableView”?

Swift 2.0使用未声明类型的UIColor

Swift:错误:使用未声明的类型'T'

在Swift 3中使用未声明的类型

尝试在Swift App中导入MoPub库时出错(错误:使用未声明的类型)

使用未声明的类型错误:如何将对象与类类型进行比较?

在Swift 3中使用未声明的类型“ Decodable” /“ Codable”

ViewController中的Swift错误“使用未声明的类型”

Cordova swift插件:使用未声明的类型“ CDVPlugin”

Json解析错误:在Swift iOS中使用未声明的类型'Foundation'

如何修复C ++中的'arrStud在此范围内未声明'错误

Swift / Xcode奇怪的行为:在声明之前使用结构的情况下,显示“使用未声明的类型”错误

使用未声明类型的tableViewCell Swift

使用未声明类型的'RoboViewController'Swift

使用未声明的类型'MFMessageComposeViewControllerDelegate swift'

如何在Java中修复“ largeNumber ^ 5 + 1 = largeNumber ^ 5”

NSMultipleValuesMarker在Swift 3中使用未声明的类型

如何修复 CopyFile() 错误 5 - 拒绝访问错误

Swift 如何修复 Target Membership 的错误?

swift 通知中心使用未声明的类型名称错误

如何修复 log4cxx 中未声明的“memmove”错误

Unity 5 NetUI - 如何修复此错误?

如何修复 Hibernate 5 中的“未知实体”错误?