Swift 4.0 使用CoreData

Swift 4.0 使用CoreData

创建文件

  1. 首先创建Data Model
    这里写图片描述

  2. 添加属性
    从别人那里借用的图片
    这里写图片描述

使用

创建完成后就可以直接在项目中访问了,不需要再创建NSManageObject文件了。(我也是第一次使用coredata,在网上找了到处都是比较旧的教程。还有从appdelegate中获取context的)

  1. 创建一个context:NSManagedObjectContext
let context:NSManagedObjectContext = NSManagedObjectContext(concurrencyType: .confinementConcurrencyType)
  1. 创建一个store:addPersistentStore
//获取momd文件地址,该文件由xcode自动生成我们不需要管。文件名对应我们创建的CoreDataModel的文件名

let url = Bundle.main.url(forResource: "User", withExtension: "momd")
let model = NSManagedObjectModel(contentsOf: url!)
//申明一个store
let store =  NSPersistentStoreCoordinator(managedObjectModel: model!)
//设置存储的位置
let docStr = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).last!
let sqlPath = docStr + "/mySqlite.sqlite"
let sqlUrl = NSURL.fileURL(withPath: sqlPath)
try? store.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: sqlUrl, options: nil)
//配置store
context.persistentStoreCoordinator = store
  1. 接下来可以通过该context进行操作啦。

读取数据


        var mine:FCUser

        let request = NSFetchRequest<FCUser>(entityName: "FCUser")
        request.returnsObjectsAsFaults = true
        request.fetchOffset = 0
        let predicate = NSPredicate(format: "uid != null OR uid != ''")  //读取所有uid !=null  != ''的数据
        request.predicate = predicate

        do{
            let results = try FCCoreDataContext.shared.context.fetch(request)
            if results.count > 0 {
                mine = results.first!
                return
            }
        }catch{

            fatalError("不能保存:\(error)")

        }
        mine = NSEntityDescription.insertNewObject(forEntityName: "FCUser", into: FCCoreDataContext.shared.context) as! FCUser
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值