承接上文, 上文讲解了Realm的一些基本知识, 本章节主要是Realm的一些实际操作.
写操作(Writes)
所有的改变(增,删,改)必须在write事务中完成.
Realm对象能像Swift一样创建.但是如果想在Realm中操作他们必须在write事务中.
Realm的写操作都是同步的,不是异步的.如果线程A开始写操作,然后线程B在同一个Realm中,A操作未完成前开始写操作.线程A必须完成并且提交自己的事务,此前,B的写操作时无法执行的.写操作在beginWrite()后会自动刷新.
创建对象(Creating objects)
1 |
|
创建对象有很多种方法:
1 |
|
- 通过制定构造器创建对象
- 通过字典对象创建
- 通过数组创建,数组元素顺序必须和对应属性顺序一致.
创建完对象之后添加到Realm
1 |
|
添加到Realm之后你可继续使用, 在write事务中所有对此对象的改变都会被保存.
write事务会锁住自己所在的线程.但是读操作不会受到影响.你应该习惯使用大的write事务,除非你需要同时在多个线程同事进行写操作.当提交一个写事务的时候,所有Realm中其他对象都会被告知,并且自动更新.
嵌套对象(Nested objects)
如果对象的属性是另一个对象或者列表.那么可以使用嵌套数组或者字典,如下
1 |
|