在RealM目标c中存储字符串类型数组

时间:2017-04-27 18:46:20

标签: ios objective-c iphone xcode realm

我想在 Realm objective c 中存储字符串类型的数组。

前阵列: - 的 [" 58575bc922e87bd14480132f"" 58575c5c22e87bd144801331"" 58575cc922e87bd144801333"" 58575d5b22e87bd144801335"" 58575bc922e87bd14480132f",& #34; 58575c5c22e87bd144801331"" 58575cc922e87bd144801333"" 58575d5b22e87bd144801335"" 58575bc922e87bd14480132f"" 58575c5c22e87bd144801331"" 58575cc922e87bd144801333&# 34;," 58575d5b22e87bd144801335"]

1 个答案:

答案 0 :(得分:4)

您可以从RLMObject类继承并将NSString作为属性放入RLMObject中。 然后,您可以再次创建新的RLMObject,现在使用先前生成的RLMObject的RLMArray。

@interface StringObject: RLMObject
@property NSString *stringValue;
@end

@interface RealmObject: RLMObject
@property RLMArray<StringObject> *realmArray
@end

此操作后随意使用它。 F.E.使用快速枚举循环将字符串放入领域RLMArray。

NSArray *arrayOfStrings = @[@"58575bc922e87bd14480132f",@"58575c5c22e87bd144801331",@"58575cc922e87bd144801333",@"58575d5b22e87bd144801335",@"58575bc922e87bd14480132f",@"58575c5c22e87bd144801331",@"58575cc922e87bd144801333",@"58575d5b22e87bd144801335",@"58575bc922e87bd14480132f",@"58575c5c22e87bd144801331",@"58575cc922e87bd144801333",@"58575d5b22e87bd144801335"];

RLMRealm *realm = [RLMRealm defaultRealm];

RealmObject *realmObject = [RealmObject new];
for (NSString *value in arrayOfStrings) {
    StringObject *string = [StringObject new];
    string.stringValue = value;

    [realmObject.realmArray addObject:string];
}

[realm beginWriteTransaction];
[realm addObject:realmObject];
[realm commitWriteTransaction];

感谢RLMObject with Array of NSStrings
https://github.com/realm/realm-cocoa/issues/3415