Cómo usar RLMArray para save una matriz

Nota: Soy bastante nuevo en Reino y Swift, así que disculpe las cosas obvias que no entiendo.

Tengo un UITableView que planeo poblar con tareas. Quiero que el usuario pueda agregar y eliminar tareas según sea necesario, así que no puedo codificar las tareas, y quiero que las tareas se guarden entre los inicios de la aplicación. La forma más obvia de hacer esto sería crear una matriz que se guarda en el Reino. El problema es que no entiendo cómo save una matriz en el Reino. He leído la documentation en el sitio de Realm pero he encontrado que es bastante confuso debido a que todavía soy bastante nuevo en Swift (y que está en ObjC). ¿Cómo crearías una matriz y la saveías? Originalmente probé esto, y cuando no funcionó, hice un poco de investigación y encontré que RLMArray no es realmente una matriz:

let ToDoTasksArray: RLMArray = ["Task Goes Here", "Task Goes Here2"] 

¿Alguna ayuda en esto? ¡Gracias!

Editar:

También he intentado save una matriz en un RLMObject como un object como tal:

 realm.addObject(ToDoTasksArray) 

Pero eso tampoco funciona, lo que no me sorprende. Una matriz no es un object.

primero necesita configurar sus models para que su todo se pueda save en el reino.

Todo lo que necesita hacer es tener esto en uno de sus files (preferiblemente un file todo.swift)

 class Todo: RLMObject { dynamic var name = "" } 

Entonces puedes crear tus dos primeros todos haciendo esto:

 var firstTodo = Todo() firstTodo.name = "My first thing todo!" var secondTodo = Todo() secondTodo.name = "My second thing todo!" 

Entonces puedes savelo en el reino

 let realm = RLMRealm.defaultRealm() realm.beginWriteTransaction() realm.addObject(firstTodo) realm.addObject(secondTodo) realm.commitWriteTransaction() 

Ahora puedes agarrar todos tus todos los cuales devuelven una variedad de ellos

 let arrayOfTodos = Todo.allObjects() 

Si tuviera que crear un método para salvar a todos, haría algo como esto

 func createNewTodo(todo: String){ let todo = Todo() todo.name = todo let realm = RLMRealm.defaultRealm() realm.beginWriteTransaction() realm.addObject(todo) realm.commitWriteTransaction() } 

Realm guarda objects derivados de RLMObject, por lo que debe definir la class para su tarea como:

 @interface Task : RLMObject @property NSString * task; @property NSString * description; @property NSDate * dueDate; ... @end RLM_ARRAY_TYPE(Task) // define RLMArray<Task> 

Luego crea un model de list de tareas como:

 @interface TaskList : RLMObject @property RLMArray<Task> * tasks; @end 

Ahora crea la tarea, agréguela a la list de tareas y guarda:

 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]; 

Espero que esto ayude.

Perdón por ignorar que mencionaste que estás usando Swift.