代码之家  ›  专栏  ›  技术社区  ›  Robert Dodier

如何告诉Xcode将CoreData输出刷新到Sqlite

  •  0
  • Robert Dodier  · 技术社区  · 7 年前

    我在xcode10中使用CoreData。CoreData的后台数据存储是Sqlite。我正在开发一个Swift应用程序,它将被部署到iOS上;不知道这是否相关。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jerry Krinock    7 年前

    托管对象上下文应在其数据更改后立即显式保存。这是您应该在代码中执行的操作,而不是Xcode或模拟器的特性。实现并调用保存相关托管对象上下文的函数。不要等到应用程序终止。

    func save() {
        do {
            try self.managedObjectContext.save()
        }
        catch {
            let nserror = error as NSError
            NSLog("Whoops! \(nserror), \(nserror.userInfo)")
        }
    }
    

    但是,如果您使用的是父上下文和子上下文,事情就要复杂一些。 Apple's documentation

    对于SQLite存储 持久存储 它们指的是磁盘上的SQLite文件(默认情况下,磁盘上有三个SQLite文件:主文件、-shm文件和-wal文件)。

    推荐文章