Swift中的核心数据到数组

时间:2014-12-10 19:00:16

标签: objective-c arrays core-data swift

我正在尝试从CoreData获取数据并将其作为数组返回到流行的图表库中进行制图。下面的代码运行正常,我可以将数据打印到控制台,但是我想用selfData中的条目填充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看起来像这样:

导入基金会 导入CoreData

class HKdataBase:NSManagedObject {

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

}

1 个答案:

答案 0 :(得分:1)

获取后,您已经拥有self.hkdataBase中的托管对象。托管对象符合KVC标准,因此如果非常简单,只需获得一种价值。

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

您现在有一个包含hr_data的数组,可能是NSNumber个对象的数组。