相关疑难解决方法(0)

RestKit,CoreData和Swift - 我似乎无法取回结果

我已经成功地在一个新的基于Swift的应用程序(目前是XCode 6 beta 3)中设置了一个RestKit到CoreData的映射实现.我知道导入映射正在使用我的RestKit JSON调用,因为我可以检查sqlite数据库并查看我的数据.但是,我无法在NSFetchRequest中将数据从数据存储中取出.我究竟做错了什么?

我将保留所有RestKit设置和拆卸,因为它非常标准,似乎工作得很好.所以这是我的AppDelegate查询代码似乎不起作用:

var currentUser: User? {
    if !_currentUser {
        var error: NSError? = nil
        let request = NSFetchRequest(entityName: "User")
        let recordCount = self.managedObjectContext.countForFetchRequest(request, error:&error)
        NSLog("user records found: \(recordCount)")
        var result = self.managedObjectContext.executeFetchRequest(request, error:&error)
        for resultItem : AnyObject in result {
            _currentUser = resultItem as? User
            if _currentUser {
                NSLog("Fetched User for \(_currentUser!.firstname) \(_currentUser!.lastname)")
            }
        }
    }
    return _currentUser;
}
Run Code Online (Sandbox Code Playgroud)

self.managedObjectContext从我的AppDelegate引用它来从RestKit shareObject获取上下文:

var managedObjectContext: NSManagedObjectContext {
    return RKObjectManager.sharedManager().managedObjectStore.mainQueueManagedObjectContext
}
Run Code Online (Sandbox Code Playgroud)

似乎提取请求成功,因为for/in循环中出现断点.但是,当我检查resultItem或_currentUser对象时,它们显示为空,并且"if _currentUser"NSLog永远不会触发.

有任何想法吗?我是否对在Swift中恢复数据做出了错误的假设?

编辑2:

问题源于我尝试将resultItem置于Optional中.如果声明_currentUser没有可选项并删除as?可选的强制转换查询返回一个合适的User对象:

        for resultItem : …
Run Code Online (Sandbox Code Playgroud)

core-data ios restkit swift

4
推荐指数
1
解决办法
9004
查看次数

标签 统计

core-data ×1

ios ×1

restkit ×1

swift ×1