以下函数用于获取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
}
}
“用户”是一个简单的结构。 “Profile”是Core Data中的一个实体。我创建了一个结构数组,用于表中的单元格。代码没有错误(对于xCode)。当没有提取数据时,它会跳过附加数组,但是当有一些信息时,应用程序崩溃并显示错误:
致命错误:NSArray元素无法与Swift数组元素匹配 型
答案 0 :(得分:1)
由于未知原因,自动生成的Core Data实体标头存在问题。我刚删除了文件夹中的所有文件:
/Users/user/Library/Developer/Xcode/DerivedData/MyApp/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/DerivedSources/CoreDataGenerated
然后用
清理我的项目命令+ shift + k
检查了我的核心数据模型是否存在一些可能的问题,并重建了整个项目。 魔法。