【问题标题】: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 的回答中得到的错误截图。

【问题讨论】:

    标签: arrays swift core-data nsmanagedobject


    【解决方案1】:

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

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

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

    【讨论】:

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