如何使用Objective C在Realm DB中存储数组值(RLMArray)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Objective C在Realm DB中存储数组值(RLMArray)?相关的知识,希望对你有一定的参考价值。
如何在Realm DB中存储数组值(RLMArray)?
我的.h文件在下面,
@interface Hotlines : RLMObject
@property (strong, nonatomic) NSString *id;
@property (strong, nonatomic) NSString *department_name;
@property (strong, nonatomic) NSString *flag;
@property (strong,nonatomic) RLMArray<Numbers> *numbers;
@end
答案
您需要为Numbers数组创建领域模型:
#import <Realm/Realm.h>
// Define your models for Numbers array
@interface Numbers : RLMObject
@property NSInteger *num;
@property (strong, nonatomic) NSString *name;
@end
RLM_ARRAY_TYPE(Numbers) // define RLMArray< Numbers >
// Define your models for Numbers array
@interface Hotlines : RLMObject
@property (strong, nonatomic) NSString *id;
@property (strong, nonatomic) NSString *department_name;
@property (strong, nonatomic) NSString *flag;
@property (strong,nonatomic) RLMArray<Numbers> *numbers;
@end
// Implementations
@implementation Numbers
@end // none needed
@implementation Hotlines
@end // none needed
有关更多信息,请参阅Realm Objective c
更新:
RLMRealm *realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
Hotlines *obj = [[Hotlines alloc] init];
obj.department_name = @"anyString";
Numbers *number = [[Numbers alloc] init]
number.num = 1;
[obj.numbers addObject:number]
[realm addObject:obj];
}];
对于多个数据:
[realm transactionWithBlock:^{
Hotlines *obj = [[Hotlines alloc] init];
obj.department_name = @"anyString";
for (int i=0; 1< 10; i++) {
Numbers *number = [[Numbers alloc] init]
number.num = i;
number.name = @"XYZ"
[obj.numbers addObject:number]
}
[realm addObject:obj];
}];
另一答案
如果你真的只想要数字,可以用原语完成:
@interface Hotlines : RLMObject
@property NSString *id;
@property NSString *department_name;
@property NSString *flag;
@property RLMArray<NSNumber*><RLMFloat> *numbers;
@end
来自realm docs:
RLMArrays可以存储原始值来代替Realm对象。为此,使用以下协议之一约束RLMArray:RLMBool,RLMInt,RLMFloat,RLMDouble,RLMString,RLMData或RLMDate
.
以上是关于如何使用Objective C在Realm DB中存储数组值(RLMArray)?的主要内容,如果未能解决你的问题,请参考以下文章
在 IOS(Objective-C)中有效地解析 JSON 到 Realm DB
在同一个项目中同时使用 Realm Swift 和 Realm Objective-C
如何在 iOS 项目中正确配置 Realm DB 文件 (<db_name>.realm) 的路径?