主键是否也是Realm中的必需属性?

时间:2017-10-20 20:01:53

标签: ios objective-c realm

我对同一主题有3个问题:

  1. 如何阻止使用nil primaryKey将对象保存到Realm?
  2. Realm中的primaryKeys是否隐式需要属性?
  3. 以下哪一项是真的?
  4. 1.option:

    + (NSString *)primaryKey {
        return @"myUniqueID";
    }
    
    + (NSArray<NSString *> *)requiredProperties {
        return @[@"myUniqueID", @"name", @"surname"];
    }
    

    2.option:

    + (NSString *)primaryKey {
        return @"myUniqueID";
    }
    
    + (NSArray<NSString *> *)requiredProperties {
        return @[@"name", @"surname"];
    }
    

1 个答案:

答案 0 :(得分:2)

关于可空性,主键没有特殊处理。如果您的主键是默认可以为空的类型(即NSString),那么nil是该主键的有效值。但请注意,由于主键必须唯一的约束,只能使用nil主键存储单个对象。

如果您希望NSString主键为非零,则应将其包含在+requiredProperties返回的数组中。