我是Realm.io的新手,并提出以下问题:
使用多个realm文件并连续在同一个线程中访问它们。所有这些.realm文件都必须具有相同的RLMObjects吗?
NSString *Path_1 = @"....path1/realmfile_1.realm";
NSString *Path_2 = @"....path2/realmfile_2.realm";
RLMRealm *realm_1 = [RLMRealm realmWithPath:Path_1];
RLMObject_1 *Object_1_ToAdd = [[RLMObject_1 alloc] init];
[realm_1 beginWriteTransaction];
Object_1_ToAdd.property_xy = @"bla1";
[realm_1 commitWriteTransaction];
RLMRealm *realm_2 = [RLMRealm realmWithPath:Path_2];
RLMObject_2 *Object_2_ToAdd = [[RLMObject_2 alloc] init];
[realm_2 beginWriteTransaction];
Object_2_ToAdd.property_ab = @"bla2";
[realm_2 commitWriteTransaction];
两个.realm文件(即realmfile_1.realm和realmfile_2.realm)是否都需要RLMObjects(即RLMObject_1和RLMObject_2)?
migration-block调用(见下文)在所有realmfiles中创建所有RLMObjects是否正确?如果是 - 为什么?????
到目前为止,我的代码中的所有RLMObject都放在所有.realm文件中 - 为什么???或者这是领域的工作方式吗?
感谢您的任何帮助!
SetSchemaVersion:
[RLMRealm setSchemaVersion:1 withMigrationBlock:^(RLMMigration *migration, NSUInteger oldSchemaVersion) { }
下图显示了一个领域文件的领域浏览器屏幕截图(见下文)(另一个看起来相同!)。有一种方法是一个文件包含RLMObject_1而另一个文件包含RLMObject_2 ??我如何设置RLMObject定义类??
答案 0 :(得分:2)
默认情况下,Realm会将每个RLMObject子类视为数据模型的一部分。这样做是为了大大简化开发,因为开发人员只需要声明他们的模型一次。
空表在Realm文件中占用的空间非常小,并且创建起来很便宜,这就是Realm以这种方式工作的原因。
如果您决定只为每个领域创建相关表格,您可以构建自己的RLMSchema
,但在这种情况下我们无法正式支持您,因为它不是公共API的一部分