我想在Core Data中存储用户名。 这意味着我需要在保存用户名之前检查核心数据中是否存在用户名。 我收到一个错误,似乎无法找到一种可行的方法来进行此项检查。错误消息是:"无法索引空缓冲区并发生
@objc func getCoreData()
{
let fetchRequest = NSFetchRequest(entityName: "LoginDetails")
var error: NSError? = nil
if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: &error) as? [LoginDetails]
{
if (error != nil)
{
println("Error")
}
if true
{
setLoginDetails(fetchResults[0])
}
}
}
答案 0 :(得分:1)
您的提取代码错误。以下是executeFetchRequest
方法的原则:
你应该使用这样的东西:
if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: &error) as? [LoginDetails]
{
if countElements(fetchResults) > 0 {
// at least 1 matching object found
setLoginDetails(fetchResults[0])
}
else {
// empty fetch. No matching objects found
}
}
else {
fatalError("Can't fetch \(error)")
}