有什么办法可以用来构建领域结构和数据吗?

时间:2016-09-21 13:49:03

标签: ios realm

我正在尝试使用Realm DB for iOS。

我目前正在使用以下工具。

    Realm.io的
  1. Realm Browser帮助我编辑Realm DB中的所有数据
  2. Realm object editor从中帮助我编辑领域结构。
  3. 这并不能帮助我在Xcode项目中使用单个领域数据库和相关对象。

1 个答案:

答案 0 :(得分:0)

有时我需要为应用准备数据。我创建另一个目标DataGenerator并在AppDelegate didFinishLaunch中形成填充的defaul域对象:

 NSString *fileName = @"Activities";


NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"json"];
NSString *myJSON = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];
NSError *error = nil;
NSArray *jsonDataArray = [NSJSONSerialization JSONObjectWithData:[myJSON dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingOptions.MutableContainers error:&error];

NSMutableArray *sessionDays = [NSMutableArray array];
for (NSDictionary *dictionary in jsonDataArray) {
    SessionDay *sessionDay = [[SessionDay alloc] initWithDictionary:dictionary];
    [sessionDays addObject:sessionDay];
}

RLMRealm *realm = [RLMRealm defaultRealm];
[realm transactionWithBlock:^{
    [realm addObjects:sessionDays];
}];

在我的Mac上打印此文件路径

    NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);

将该文件复制到我的主目标包中。在主目标AppDelegate中将该文件从bundle复制到应用程序文件夹:

  NSString *preLoadRealmPath =  [[NSBundle mainBundle] pathForResource:@"default" ofType:@"realm"];

NSError *error;
NSURL *url = [RLMRealmConfiguration defaultConfiguration].fileURL;
[[NSFileManager defaultManager] copyItemAtPath:preLoadRealmPath toPath:url.path error:&error];