首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >核心数据Swift 3关系

核心数据Swift 3关系
EN

Stack Overflow用户
提问于 2017-06-14 16:18:35
回答 1查看 331关注 0票数 0

我有两个实体,设备和MDM。设备有两个属性,asset_tag和location。MDM有两个属性,asset_tag和os。我正在尝试获取每个asset_tag设备的asset_tag、os和位置。我让Xcode创建我的子类:

代码语言:javascript
运行
复制
extension Device {

    @nonobjc public class func fetchRequest() -> NSFetchRequest<Device> {
        return NSFetchRequest<Device>(entityName: "Device")
    }

    @NSManaged public var asset_tag: String?
    @NSManaged public var location: String?
    @NSManaged public var devices: MDM?

}

extension MDM {

    @nonobjc public class func fetchRequest() -> NSFetchRequest<MDM> {
        return NSFetchRequest<MDM>(entityName: "MDM")
    }

    @NSManaged public var asset_tag: String?
    @NSManaged public var os: String?
    @NSManaged public var mdms: Device?

}

我的提取请求如下:

代码语言:javascript
运行
复制
var request = NSFetchRequest<NSFetchRequestResult>()
            request = Device.fetchRequest()
            request.returnsObjectsAsFaults = false
let results = try context.fetch(request) as! [Device]

不知道如何让device.mdms.os这样的东西工作,以获得特定设备的操作系统。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-14 16:45:14

看起来你倒着你的人际关系的名字。现在,Device有一个名为devicesMDM类型的关系,而MDM有一个名为Device类型的mdms的关系。这意味着您将获得带有osDevice的值,这可能不是您想要的方式。

要解决这个问题,您可能希望反转这些关系的名称--在Device中,将名称从devices更改为mdms,在MDM中,将名称从mdms更改为devices。一般来说,一段关系的名称应该描述它所涉及的事物,而不是有这种关系的事物。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44549945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档