【问题标题】:CoreData to Array in SwiftSwift中的CoreData到数组
【发布时间】:2015-02-09 02:34:22
【问题描述】:

我正在尝试从 CoreData 获取数据并将其作为数组返回,以便在流行的图表库中绘制图表。下面的代码运行良好,我可以将数据打印到控制台,但是我想用 CoreData 中的条目填充 self.hkdataBase 并返回它。知道我做错了什么吗?

class ViewController: UIViewController {
var hkdataBase = [HKdataBase]()

....

func fetchCoreData () -> NSArray {

//Setting up Core Data
    var context = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext!
    var request = NSFetchRequest(entityName: "HKdataBase")
    request.returnsObjectsAsFaults = false

//Fetching Data
    self.hkdataBase = context.executeFetchRequest(request, error: nil)! as [HKdataBase]
    if hkdataBase.count > 0 {
        for i in hkdataBase {

        **I WANT TO FILL self.hkdataBase WITH i ELEMENTS HERE **  ->  println(i.hr_data) WORKS FINE


        }
    } else {
        println("No results")
    }
}
**return self.hkdataBase with elements**
}

更新 1: 我想从 CoreData 中获取的数据中返回一个数组。 hr_data 是心率测量值,hr_date 是关联的 NSDate。 HKdataBase 如下所示:

导入基础 导入核心数据

类 HKdataBase: NSManagedObject {

@NSManaged var hr_date: NSDate
@NSManaged var hr_data: NSNumber

}

【问题讨论】:

  • 模型中的 hr_data 是一个数字,而不是一个数组。你为什么期望一个数组?请解释您要使用数据模型完成的工作。我猜你真正想要的是与主实体有一对多关系的第二个实体。核心数据数据库中的实体就像表/对象。例如您可能有一个名为 Person 的实体,它具有姓名、年龄和身高。每个人可能与 0 个或多个其他对象相关联,例如一本书
  • 是的,那是我的问题,我如何使它成为一个数组?好的,所以我的 CoreData 模型是错误的?我正在尝试返回一个数组,以便我可以使用该数组来绘制数字
  • 如果您不解释您要完成的工作,则无法帮助您。 (通过编辑您的问题而不是通过评论添加此详细信息)
  • context.executeFetchRequest(...)! as [HKdataBase] 的结果已经是一个数组。你还需要什么?
  • 如果我返回 self.hkdataBase,我只会得到一个空数组 [, , , , , , , , , , , , , , , ]。如何填写?

标签: objective-c arrays core-data swift


【解决方案1】:

获取后,您已经在self.hkdataBase 中拥有托管对象。托管对象是 KVC 兼容的,所以如果它很简单的话,只得到一种值。

var hrData = (self.hkdataBase as NSArray).valueForKey("hr_data") as NSArray

你现在有一个包含你的 hr_data 的数组,大概是一个 NSNumber 对象的数组。

【讨论】:

  • 非常感谢 Mundi !我一直试图让它工作整整 3 天,今天离开工作(启动)非常士气低落(住在欧洲)。你让我离我们的目标更近了一步 - 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-01
  • 1970-01-01
  • 2015-09-11
  • 2014-12-18
  • 1970-01-01
  • 1970-01-01
  • 2021-06-28
相关资源
最近更新 更多