CoreData在斯威夫特阵列 [英] CoreData to Array in Swift
问题描述
我想从CoreData获取数据并返回它作为一个流行的图表库图表的数组。下面的code运行良好,我可以打印数据到控制台,但是我想,以填补在CoreData项self.hkdataBase并将其返回。任何知道我做错了?
类的ViewController:UIViewController的{
变种hkdataBase = [HKdataBase]()
...
FUNC fetchCoreData() - GT; NSArray的{//设置核心数据
VAR上下文=(UIApplication.sharedApplication()。委托作为AppDelegate中).managedObjectContext!
VAR请求= NSFetchRequest(的entityName:HKdataBase)
request.returnsObjectsAsFaults = FALSE//获取数据
self.hkdataBase = context.executeFetchRequest(请求错误:无)!为[HKdataBase]
如果hkdataBase.count> 0 {
因为我在hkdataBase { **我要填写self.hkdataBase与I元素:** - >的println(i.hr_data)工作正常
}
}其他{
的println(无结果)
}
}
**的元素返回self.hkdataBase **
}
更新1:
我想从CoreData所取得的数据返回数组。该hr_data是心率措施和hr_date是相关的NSDate。该HKdataBase看起来是这样的:
进口基金会
进口CoreData P>
类HKdataBase:NSManagedObject {
@NSManaged VAR hr_date:NSDate的
@NSManaged VAR hr_data:NSNumber的
}
在抓取,你已经在 self.hkdataBase
你的管理对象。管理的对象是KVC兼容的,因此要获得只是一个样的价值,如果它是很简单的。
VAR HRDATA =(self.hkdataBase为NSArray的).valueForKey(hr_data)作为NSArray中
您现在拥有一个包含hr_data一个数组,presumably 的NSNumber
对象的数组。
I am trying to fetch data from CoreData and return it as an array for charting in a popular charting library. The code below runs fine and I can print the data to the console, however I want to fill self.hkdataBase with the entries within CoreData and Return it. Any idea what I am doing wrong ?
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**
}
UPDATE 1: I want to Return an Array from the fetched data in CoreData. The hr_data are Heart Rate measures and hr_date are the associated NSDate. The HKdataBase looks like this:
import Foundation import CoreData
class HKdataBase: NSManagedObject {
@NSManaged var hr_date: NSDate
@NSManaged var hr_data: NSNumber
}
After the fetch, you already have your managed objects in self.hkdataBase
. Managed objects are KVC compliant, so to get just one kind of value out if it is quite simple.
var hrData = (self.hkdataBase as NSArray).valueForKey("hr_data") as NSArray
You now have an array containing your hr_data, presumably an array of NSNumber
objects.
这篇关于CoreData在斯威夫特阵列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!