问题1:
添加RealmSwift和Realm框架后运行会出现下面都错误警告 permission denied xcode
所以要将处于下面的框架 移到Embedded binaries处 而且下面的只保留 RealmSwift.framework 框架
建立两个model 可以先安装一个插件RealmPlugin然后就可以在添加新文件中有一个Realm选项
import Foundation
import RealmSwift
//消费类型
class ConsumeType: Object {
dynamic var name: String = ""
}
import Foundation
import RealmSwift
//消费纪录
class ConsumeItem: Object {
dynamic var name: String = ""
dynamic var cost: Double = 0
dynamic var date:NSDate = NSDate()
dynamic var type:ConsumeType?
}
下面创建消费类型和消费纪录并且存储到realm数据库中
override func viewDidLoad() {
super.viewDidLoad()
let realm = try! Realm()
//查询纪录
let items = realm.objects(ConsumeType)
if items.count > 0 {
return
}
//创建消费类型
let type1 = ConsumeType()
type1.name = "购物"
let type2 = ConsumeType()
type2.name = "娱乐"
//创建消费纪录
let item1 = ConsumeItem(value:["买了一台电脑",5999.2,NSDate(),type1])
let item2 = ConsumeItem()
item2.name = "看了一场电影"
item2.cost = 30
item2.date = NSDate(timeIntervalSinceNow: -72000)
item2.type = type2
let item3 = ConsumeItem()
item3.name = "买了一包泡面"
item3.cost = 2.5
item3.date = NSDate(timeIntervalSinceNow: -36000)
item3.type = type1
//数据持久化操作
try! realm.write({
realm.add(item1)
realm.add(item2)
realm.add(item3)
})
}
你可以通过print(realm.path)
打印realm在沙盒中的路径
下面就是对数据库进行查询这里我尝试了几种常用的查询方式并在tableview中展示出来
// 使用默认数据库
let realm = try! Realm()
//查询所有的消费纪录
consumItems = realm.objects(ConsumeItem)
//查询消费大于10 元的纪录
consumItems = realm.objects(ConsumeItem).filter("cost > 10")
//多条件查询
let predicate = NSPredicate(format: "type.name = '购物' AND cost > 10")
consumItems = realm.objects(ConsumeItem).filter(predicate)
//链式查询
consumItems = realm.objects(ConsumeItem).filter("cost > 10").filter("type.name = '购物' ")
//排序
consumItems = realm.objects(ConsumeItem).filter("cost > 10").sorted("cost")
demo地址:https://github.com/WonderC/TestRealm
我只是简单介绍了一下realm的集成使用其他操作可以在下面的地址查看学习