Swift 3 核心数据获取问题
Posted
技术标签:
【中文标题】Swift 3 核心数据获取问题【英文标题】:Swift 3 Core Data fetch issue 【发布时间】:2016-06-23 15:09:06 【问题描述】:下面的函数用于获取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
“用户”是一个简单的结构。 “配置文件”是 Core Data 中的一个实体。我创建了一个结构数组以将它们用于表格中的单元格。代码没有错误(对于 xCode)。当没有获取数据时,它会跳过附加数组,但是当有一些信息时,应用程序会崩溃并出现错误:
致命错误:NSArray 元素无法匹配 Swift Array 元素 输入
【问题讨论】:
尝试在获取请求时替换这一行,让 fetchedData = 试试! context.executeFetchRequest(fetchRequest) 为! [任何对象] @Suresh xCode 说:“无法将 NSFetchRequest由于未知原因,Core Data 实体的自动生成标头存在问题。我刚刚删除了文件夹中的所有文件:
/Users/user/Library/Developer/Xcode/DerivedData/MyApp/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/DerivedSources/CoreDataGenerated
然后用
清理我的项目command+shift+k
检查了我的核心数据模型是否存在一些可能的问题并重建了整个项目。 魔法。
【讨论】:
以上是关于Swift 3 核心数据获取问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 NSFetchedResultsController 核心数据重新排序 TableView 单元格 - Swift 3