获取后,iOS核心数据故障数量超过实体数量

时间:2015-01-24 02:41:09

标签: ios swift core-data faults

我正在构建一个应用程序,当服务器连接不再可用时,它会在核心数据中存储位置,然后在恢复连接时将这些位置推送到服务器。

从核心数据中获取并打印这些获取的对象后,我最初会遇到大量故障。我理解故障及其代表的内容,但故障的数量不应该是相同数量的对象吗?故障数量大大超过了对象的数量(我只能为{经度,纬度,时间戳}的10个位置实体数组对象打印出100多个故障。)

我希望有人能告诉我我做错了什么,或者这是不正常的行为。非常感谢。

AppDelegate.swift 当服务器返回到连接的

时,调用fetch并打印核心数据对象
                var fetchedCoreData = self.coreDataManagement.fetchLog()

                for dataPoints in fetchedCoreData
                {
                  println(dataPoints)
                }

`CoreDataManager.swift处理存储/获取Location实体的核心数据

var locations = [NSManagedObject]()



//coordinates passed from AppDelegate
func saveCoords(latCoord: String, longCoord: String, timeCoord: String) {

    let appDelegate =
    UIApplication.sharedApplication().delegate as AppDelegate

    let managedContext = appDelegate.managedObjectContext!


    let entity =  NSEntityDescription.entityForName("Location",
        inManagedObjectContext:
        managedContext)

    let coordsInfo = NSManagedObject(entity: entity!,
        insertIntoManagedObjectContext:managedContext)


    coordsInfo.setValue(latCoord, forKey: "latitude")
    coordsInfo.setValue(longCoord, forKey: "longitude")
    coordsInfo.setValue(timeCoord, forKey: "timestamp")



    var error: NSError?
    if !managedContext.save(&error) {
        println("Could not save \(error), \(error?.userInfo)")
    }

    locations.append(coordsInfo)


}

`

//fetch core data objects
func fetchLog() -> Array<AnyObject> {

    let appDelegate =
    UIApplication.sharedApplication().delegate as AppDelegate

    let fetchRequest = NSFetchRequest(entityName: "Location")
    fetchRequest.returnsObjectsAsFaults = false;
    var fetchResults = appDelegate.managedObjectContext!.executeFetchRequest(fetchRequest, error: nil)

    return fetchResults! as Array<AnyObject>
}

`

0 个答案:

没有答案