gpt4 book ai didi

ios - .sqlite 和 .storedata 有什么区别

转载 作者:可可西里 更新时间:2023-11-01 05:12:37 27 4
gpt4 key购买 nike

当您在 Xcode 上使用核心数据启动一个新的 iOS 项目时,它会初始化一个扩展名为 .sqlite 的数据库。当您为 OSX 的新项目做同样的事情时,数据库的扩展名为 .storedata

这两者有什么区别吗?谢谢。

最佳答案

iOS 上的 CoreData 仅支持 sqlite 持久存储。 OS X 上的 CoreData 支持多种格式,包括 sqlite 和 xml,默认的持久存储是基于 xml 的。因此,.sqlite 是 CoreData 的 sqlite 持久存储,而 .storedata 是 xml 持久存储。

为了扩展答案,sqlite 持久存储允许模型被部分和增量加载,而 xml 持久存储只允许(要求)模型被整体加载。默认值的差异可能是由于两个平台上的内存可用性不同所致。典型的 Mac 上有更多的可用内存,通过一次加载所有内容可以提高整体性能。

要将默认代码切换为使用 sqlite 而不是 xml,请编辑 persistentStoreCoordinator 并更改:

NSURL *url = [applicationFilesDirectory URLByAppendingPathComponent:@"Foo.storedata"];
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:mom];
if (![coordinator addPersistentStoreWithType:NSXMLStoreType configuration:nil URL:url options:nil error:&error]) {

到:

NSURL *url = [applicationFilesDirectory URLByAppendingPathComponent:@"Foo.sqlite"];
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:mom];
if (![coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:nil error:&error]) {

关于ios - .sqlite 和 .storedata 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23117831/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com