用核心数据属性填充数组

Posted

技术标签:

【中文标题】用核心数据属性填充数组【英文标题】:Filling an array with core data attributes 【发布时间】:2015-03-16 19:17:03 【问题描述】:

我正在尝试填充我的数组。

var weights = [] 

具有来自 NSManaged 对象的属性。我的核心数据关系就像下面的 Client>Assessment。我在评估中有一个“权重”属性,我想用这些字符串值填充我的数组。我的变量:

var client: Client! = nil 

成功检索到我选择的特定客户,但我不知道如何用该特定客户的评估属性(称为“权重”)的值填充我的数组。我只做到了……

client.assessment.count

这成功地向我显示了客户的评估数量,但是我如何访问我的阵列的每个评估的权重属性?

我的客户和评估管理对象类如下:

Client.swift

import Foundation
import CoreData

@objc(Client)
class Client: NSManagedObject 
    @NSManaged var assessment: NSSet

评估.swift

import Foundation
import CoreData

@objc(Assessment)
class Assessment: NSManagedObject 
    @NSManaged var weight: String
    @NSManaged var client: Client

谁能帮我知道怎么做?

更新: 我在@Wain 的回答中得到的错误截图。

【问题讨论】:

【参考方案1】:

您可以使用 KVC 获取一组权重:

var weights: NSSet! = client.assessment.valueForKey("weight")

然后您可以通过排序或仅请求所有对象从中提取一个数组。

【讨论】:

当我这样做时,我得到我的 viewcontroller.type “没有名为'client'的成员” 你说你有client.assessment.count 工作?错误到底在哪里? 权重变量。我会上传截图。 你在类中定义了这两个变量吗?您应该在函数中执行client.assessment.valueForKey 部分 好的,我知道了。不过,对我不起作用的一件事是,我需要权重数组是一个整数数组,现在它是我所理解的字符串数组,因为“权重”属性以文本字段的字符串形式存储到 CoreData。我如何使它成为一个 int 数组?

以上是关于用核心数据属性填充数组的主要内容,如果未能解决你的问题,请参考以下文章

使用核心数据中的数组填充表视图

如何用核心数据填充选择器控制器

将核心数据加载到数组中,然后填充表视图,重新排序数组对象不会持久

预填充核心数据存储:使用 JSON 属性列表还是 XML 文件?

核心数据实体属性的总和数组

核心数据填充的表无法正确显示