我有一个语法问题,我就是搞不懂。我没有坚强的后背,所以回答我要轻松(我希望如此)。下面是片段:
public func getLatestDate()-> NSDate? {
var request = NSFetchRequest()
var entity = NSEntityDescription.entityForName("Event", inManagedObjectContext: self.managedObjectContext)
request.entity = entity
let sortDescriptor = NSSortDescriptor(key: "timeStamp", ascending: false)
let sortDescriptors = [sortDescriptor]
request.sortDescriptors = sortDescriptors
var error: NSError? = nil
do {
let results = try self.managedObjectContext.executeFetchRequest(request)
} catch {
fatalError("Failed to fetch employees: \(error)")
}
var date: NSDate?
if results != nil {
let managedObject: NSManagedObject = results![0] as NSManagedObject
date = managedObject.valueForKey("timeStamp") as? NSDate
}
return date
}问题是,if results != nil和下一行的results抛出了一个错误,声明:
未解析标识符“结果”的使用
我如何解决这个问题?
谢谢。
-Matt
发布于 2016-04-13 21:06:32
您在这里声明results:
do {
let results = try self.managedObjectContext.executeFetchRequest(request)
} catch {
fatalError("Failed to fetch employees: \(error)")
}因此,您可以看到它是在do-catch块中完成的。这意味着您尝试使用它的地方超出了定义它的范围,所以它根本看不见它。当您到达if results != nil时,它已经超出了范围,并且已经消失了。
发布于 2016-04-13 21:12:26
除了加文:这将工作的原因,这加文提到。
do {
let results = try self.managedObjectContext.executeFetchRequest(request)
if results != nil {
let managedObject: NSManagedObject = results![0] as NSManagedObject
date = managedObject.valueForKey("timeStamp") as? NSDate
}
} catch {
fatalError("Failed to fetch employees: \(error)")
}https://stackoverflow.com/questions/36609522
复制相似问题