Swift 如何在领域中列出LinkingObject属性?

Swift 如何在领域中列出LinkingObject属性?,swift,realm,Swift,Realm,我需要列出对象的LinkingObject类型的所有属性 class Dogs: Object { dynamic var name: String = "" dynamic var age: Int = 0 dynamic var owner: Persons? } class Cats: Object { dynamic var name: String = "" dynamic var age: Int = 0 dynamic var o

我需要列出对象的LinkingObject类型的所有属性

class Dogs: Object {
    dynamic var name: String = ""
    dynamic var age: Int = 0
    dynamic var owner: Persons?
}


class Cats: Object {
    dynamic var name: String = ""
    dynamic var age: Int = 0
    dynamic var owner: Persons?
}


class Persons: Object {
    dynamic var name: String = ""
    dynamic var address: String = ""

    let dogs = LinkingObjects(fromType: Dogs.self, property: "owner")
    let cats = LinkingObjects(fromType: Cats.self, property: "owner")
}
ObjectSchema正确返回架构:

let person = Persons()
let schema = person.objectSchema
print(schema)
结果:

Persons {
 name {
    type = string;
    objectClassName = (null);
    linkOriginPropertyName = (null);
    indexed = NO;
    isPrimary = NO;
    optional = NO;
 }
 address {
    type = string;
    objectClassName = (null);
    linkOriginPropertyName = (null);
    indexed = NO;
    isPrimary = NO;
    optional = NO;
 }
 dogs {
    type = linking objects;
    objectClassName = Dogs;
    linkOriginPropertyName = owner;
    indexed = NO;
    isPrimary = NO;
    optional = NO;
 }
 cats {
    type = linking objects;
    objectClassName = Cats;
    linkOriginPropertyName = owner;
    indexed = NO;
    isPrimary = NO;
    optional = NO;
 }
}
但是,objectSchema.properties不返回LinkingObjects属性

let properties = schema.properties
print(properties)
返回:

[name {
    type = string;
    objectClassName = (null);
    linkOriginPropertyName = (null);
    indexed = NO;
    isPrimary = NO;
    optional = NO;
}, address {
    type = string;
    objectClassName = (null);
    linkOriginPropertyName = (null);
    indexed = NO;
    isPrimary = NO;
    optional = NO;
}]
狗和猫的财产在哪里


谢谢。

链接对象的属性列在
RLMObjectSchema
computedProperties
属性中,该属性当前未公开或未出现在该类的Swift版本中。虽然可以通过obj-c类的实例(通过
.valueForKey(“computedProperties”)
)访问私有属性,但这在Swift类上不起作用,并且在使用领域Swift时,没有任何好的方法访问obj-c
RLMObjectSchema

.

我找到了解决方案:

let computedProperties = Persons.sharedSchema()?.computedProperties