Swift 3核心数据获取问题

5 core-data ios swift3

下面的函数用于获取tableview的数据

func fetchProfiles() -> Array<User> {
    var users: Array<User> = []
    let fetchRequest: NSFetchRequest<Profile> = Profile.fetchRequest()
    let fetchedData = try! context.fetch(fetchRequest)
    if (!fetchedData.isEmpty) {
        print(fetchedData)
        for i in 0...fetchedData.count {
            var user: User = User()
            user.userName = fetchedData[i].profileName
            user.userSurname = fetchedData[i].profileSurname
            user.userPhoto = fetchedData[i].profilePhoto
            users.append(user)
        }
        return users
    }
    else {
        return users
    }
}
Run Code Online (Sandbox Code Playgroud)

"用户"是一个简单的结构."Profile"是Core Data中的一个实体.我创建了一个结构数组,用于表中的单元格.代码没有错误(对于xCode).当没有提取数据时,它会跳过附加数组,但是当有一些信息时,应用程序崩溃并显示错误:

致命错误:NSArray元素无法匹配Swift数组元素类型

小智 1

由于未知原因,自动生成的核心数据实体标头存在问题。我刚刚删除了文件夹中的所有文件:

/Users/user/Library/Developer/Xcode/DerivedData/MyApp/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/DerivedSources/CoreDataGenerate

然后清理我的项目

命令+Shift+k

检查我的核心数据模型是否存在一些可能的问题并重建整个项目。魔法。