Tags

,

最近一个小iOS项目可能会需要Local Storage,需求非常简单的那种,也几乎不存在扩展、升级问题,于是有时间试了试各种方法,最终发现了一个很有趣的东西
官方介绍是这么说的

Realm is a mobile database: a replacement for SQLite & Core Data
Realm can save you thousands of lines of code & weeks of work,
and lets you craft amazing new user experiences.

主页上就有Java/Objective-C/Swift的实例代码,下载下来安装编译运行确实十分easy。

不过使用过程中遇到了一点小问题,在swift的实体类声明时忘了在字段前面加dynamic描述,结果看上去能work,数据库里也确实存放了正确的内容,Fetch操作正常执行,结果数量正确,但是对象各个字段却是空,后来发现加上dynamic就正常了。查了一下,发现dynamic是要告诉swift编译器不要自作主张给字段加Getter和Setter,这些工作之后会被我们自己处理。实际上dynamic描述在CoreData的模型类中也有使用。
难怪Java和Objective-C的实体类只需要简单的声明就好了,而swift由于太过“聪明”反而需要修饰一下,告诉他不要做多余的工作,233。