2017-03-15 4 views
1

どのようにして配列値(RLMArray)をRealm DBに格納できますか?Objective Cを使用して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 

答えて

2

Realm Objective c

更新

#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 

詳細については参照してください。

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]; 
}]; 
+0

@RodBakerチェック更新 –

+0

おかげで私はそれを知っているが、私はRLMArray *番号の値を保存する方法を知っておく必要があります。 例えば: ホットラインを* OBJ = [ [Hotlines alloc] init]; obj.department_name = @ "anyString"; obj.numbers = ???? RLMRealm * realm = [RLMRealm defaultRealm]; [realm beginWriteTransaction]; [realm addObject:obj]; [realm commitWriteTransaction]; –

+0

番号*番号= [[Numbers alloc] init] number.num = @ "1"; [obj.numbers addObject:number]ホットラインモデルで番号を追加します。 forループを使用して複数のバリューを追加することができます –

関連する問題