Realm 使用

问题1:
添加RealmSwift和Realm框架后运行会出现下面都错误警告 permission denied xcode

Realm 使用_第1张图片
Paste_Image.png

所以要将处于下面的框架 移到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的集成使用其他操作可以在下面的地址查看学习

  • http://www.hangge.com/blog/cache/detail_891.html
  • https://www.raywenderlich.com/81615/introduction-to-realm

你可能感兴趣的:(Realm 使用)