首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift核心数据变量问题

Swift核心数据变量问题
EN

Stack Overflow用户
提问于 2016-04-13 21:02:23
回答 2查看 24关注 0票数 0

我有一个语法问题,我就是搞不懂。我没有坚强的后背,所以回答我要轻松(我希望如此)。下面是片段:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

发布于 2016-04-13 21:06:32

您在这里声明results

代码语言:javascript
复制
do {
    let results = try self.managedObjectContext.executeFetchRequest(request)
} catch {
    fatalError("Failed to fetch employees: \(error)")
}

因此,您可以看到它是在do-catch块中完成的。这意味着您尝试使用它的地方超出了定义它的范围,所以它根本看不见它。当您到达if results != nil时,它已经超出了范围,并且已经消失了。

票数 1
EN

Stack Overflow用户

发布于 2016-04-13 21:12:26

除了加文:这将工作的原因,这加文提到。

代码语言:javascript
复制
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)")
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36609522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档