【发布时间】: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