- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
注意:我对 Realm 和 Swift 还很陌生,所以请原谅我不明白的任何显而易见的事情。
我有一个工作的 UITableView,我计划用任务填充它。我希望用户能够根据需要添加和删除任务,所以我不能对任务进行硬编码,而且我希望在应用程序启动之间保存任务。最明显的方法是创建一个保存在 Realm 中的数组。问题是,我不明白如何在 Realm 中保存数组。我已经阅读了 Realm 网站上的文档,但发现它相当困惑,因为我自己对 Swift 还是很陌生(而且它在 ObjC 中)。你将如何创建一个数组并保存它?我最初尝试过这个,当它不起作用时我做了一些研究,发现 RLMArray 实际上不是一个数组:
let ToDoTasksArray: RLMArray = ["Task Goes Here", "Task Goes Here2"]
有什么帮助吗?谢谢!
编辑:
我也试过将数组作为对象保存到 RLMObject 中:
realm.addObject(ToDoTasksArray)
但这也行不通,这并不让我感到惊讶。数组不是对象。
最佳答案
Realm 保存从 RLMObject 派生的对象,因此您需要为您的任务定义类,例如:
@interface Task : RLMObject
@property NSString * task;
@property NSString * description;
@property NSDate * dueDate;
...
@end
RLM_ARRAY_TYPE(Task) // define RLMArray<Task>
然后创建一个任务列表模型:
@interface TaskList : RLMObject
@property RLMArray<Task> * tasks;
@end
现在您创建任务,将其添加到任务列表并保存:
RLMRealm * realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
Task * task = [Task new];
task.task = @"Some new task";
RLMArray <TaskList> * tasksLists = (RLMArray <TaskList> *)[TaskList allObjects];
// You can manage multiple task lists here using unique primary key for each task list. I am assuming that we have only one list.
TaskList * taskList = tasksLists.firstObject;
[taskList.tasks addObject: task];
[realm addOrUpdateObject: taskList];
[realm commitWriteTransaction];
希望这对您有所帮助。
抱歉,我忽略了您提到您正在使用 Swift。
关于ios - 如何使用 RLMArray 保存数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28593683/
我有一个主 Realm 对象: @interface MasterRealmObject : RLMObject @property (nonatomic, strong) RLMArray *ret
想要一些方法来更新现有的关注者,如果不存在,请将其添加到数据库并将它们链接到用户,例如 GETS CRASH OVER append in write block,由于主键重复,此外,如果没有在 HK
@ Realm : 为什么我的 RLMArray 在运行时会给出不同的对象实例? 这就是我定义 RLMArray 的方式: @property RLMArray *images; 我添加/删除 Hou
我的模型: Conv.h #import #import "ConvText.h" @interface Conv : RLMObject @property NSInteger c_id; @pr
我在 RealmSwift 中遇到了一个非常奇怪的问题。我在名为 Device 的 Realm 对象类中具有以下属性。 class Device: Object { .... dyna
我在没有我的 Realm 数据库时遇到了问题。我有这些对象: // Person.h @interface Person : RLMObject //... property declarations
我一直在测试用对象反转 RLMArray 顺序的可能性。我知道我可以将对象添加到 NSArray,然后将 reverseObjectEnumerator 添加到该数组,但我想继续使用 RLMarray
我正在尝试使用 rlmarray 创建 rlmobject 作为元素之一,但无法让它工作。 声明: dynamic var contactInfo : RLMArray = RLMArray(obj
我想用一种方法收集一些数据。 RLMArray 将用作一对多关系,例如菜单.菜肴 + (RLMArray *)parseDishesFromDictionary:(NSDictionary *)res
当声明一个 RLMArray 时,第二组括号的意义是什么? Realm 是我见过的唯一用过的地方。 @property NSArray *dictionaries; // I understand
我正在寻找一些有效(或至少不那么复杂)的方法来确定 and Object 是否包含在另一个对象的 RLMArray 属性中。 如果您查看 Realm 文档,就会发现关于 Inverse relatio
强制 RLMArray 支持 NSFastEnumerationIterator 的最佳方式是什么? internal override func buildEntryFromResultObject
我有一个内置了 Realm 和 CloudKit 的应用程序。该应用程序从 CloudKit 容器中获取数据,然后将其添加到 Realm。不过,两次提取中的一次具有一些链接的 Realm 模型,这就是
我需要区分 Class1 和 Class2。当然,我可以获得第一个对象并执行 isKindOfClass: 但这似乎有点草率。 @property RLMArray *arr1; @property
我将如何获取 RLMArray 并对其进行洗牌,以便 RLMArray 中的当前项目是随机的。 我已经查看了 RLMArray 的文档,但是我没有看到对其进行洗牌的好方法。 最佳答案 你最好的选择可能
我有一个相当简单明了的问题,我想用 Realm 来解决。我的对象上有一个数组属性(线程)。当我通过我们的 API 获取所有线程时,它们都被保存到 Realm 中,因为父对象是单独保存的,因此数组属性中
注意:我对 Realm 和 Swift 还很陌生,所以请原谅我不明白的任何显而易见的事情。 我有一个工作的 UITableView,我计划用任务填充它。我希望用户能够根据需要添加和删除任务,所以我不能
如何在removeAllObjects中使用RLMArray? 我收到'RLMException', reason: 'Attempting to mutate a readOnly RLMArray
我在 iOS Realm DB 中创建了简单的关系数据库(如存在于其他数据库中)模型。我创建了 2 个单独的 Realm 模型(表)用户 ID 以及其他详细信息和一个愿望 list ,其中用户使用 R
我有类Country。它是 RLMObject 的一个简单子(monad)类。基本上,当我保存 Country 时,它们确实有 regions (RLMArray 类型的属性包含几个 Region 类
我是一名优秀的程序员,十分优秀!