我有两个实体,设备和MDM。设备有两个属性,asset_tag和location。MDM有两个属性,asset_tag和os。我正在尝试获取每个asset_tag设备的asset_tag、os和位置。我让Xcode创建我的子类:
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?
}
我的提取请求如下:
var request = NSFetchRequest<NSFetchRequestResult>()
request = Device.fetchRequest()
request.returnsObjectsAsFaults = false
let results = try context.fetch(request) as! [Device]
不知道如何让device.mdms.os
这样的东西工作,以获得特定设备的操作系统。
发布于 2017-06-14 16:45:14
看起来你倒着你的人际关系的名字。现在,Device
有一个名为devices
的MDM
类型的关系,而MDM
有一个名为Device
类型的mdms
的关系。这意味着您将获得带有os
的Device
的值,这可能不是您想要的方式。
要解决这个问题,您可能希望反转这些关系的名称--在Device
中,将名称从devices
更改为mdms
,在MDM
中,将名称从mdms
更改为devices
。一般来说,一段关系的名称应该描述它所涉及的事物,而不是有这种关系的事物。
https://stackoverflow.com/questions/44549945
复制相似问题