【发布时间】:2015-04-10 15:34:25
【问题描述】:
需要使用 Swift 访问 Core Data 记录。
理想情况下,我想调用我的类“核心数据”,它返回 ManagedObject 或 false(不存在对象)。但是目前,当我想检索 ManagedObject 上的属性时,我得到编译器错误 [NSManagedObject] does not have a member named 'valueForKey'
我知道类似的问题(例如swift optional chaining with cast),但我无法解决这个问题。需要帮助:)
为了进行故障排除,我正在尝试访问课程中已有的属性(稍后将在课程外完成)。代码如下。 为什么会出现编译器错误,我该如何解决?
谢谢!
class CoreData{
// Fetch existing data (from Core Data)
func getData(entity: String) -> AnyObject {
// Set delegate
let appDelegate =
UIApplication.sharedApplication().delegate as AppDelegate
let managedContext = appDelegate.managedObjectContext!
// Get entity = a table (filter)
let fetchRequest = NSFetchRequest(entityName:entity)
// Create error variable
var error: NSError?
// Get record
let fetchedResults =
managedContext.executeFetchRequest(fetchRequest,
error: &error) as [NSManagedObject]?
if let results = fetchedResults {
// Data retrieved
var temp = results.valueForKey("gender") as String // <-- ERROR
println(temp)
return results
} else {
// Could not obtain data - log it
println("Could not fetch \(error), \(error!.userInfo)")
return false
}
}
}
【问题讨论】:
标签: swift core-data nsmanagedobject