领域RLMObject attributesForProperty

时间:2015-02-16 11:23:35

标签: ios swift realm

我对使用领域数据库感到新鲜。我看了一下realm文档,然后找到了一个RLMObject类方法 attributesForProperty:

我不明白它在做什么。

你可以解释我,并且需要使用它。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以在实体类中覆盖此方法,该类继承自RLMObject以指定属性方面的附加属性,这些属性会影响数据库的架构和行为。目前,您唯一的选择是否有财产被编入索引。

假设您有一个类似于文档中的模型类:

@interface Dog : RLMObject
@property NSInteger age;
@property NSString *name;
@end

使用v0.91.0及以上版本:

0.91.0发布以来,它是easier to define indexed properties。如果您希望将name列编入索引,那么您可以通过覆盖此处的类方法来实现此目的。

+ (NSArray *)indexedProperties {
    return @[@"age", @"name"];
}

直到v0.91.0:

在此版本之前,您可以指定索引列,如下所示:

+ (RLMPropertyAttributes)attributesForProperty:(NSString *)propertyName {
    RLMPropertyAttributes attributes = [super attributesForProperty:propertyName];
    if ([propertyName isEqualToString:@"name"]) {
        attributes |= RLMPropertyAttributeIndexed;
    }
    return attributes;
}