首页
学习
活动
专区
圈层
工具
发布

Swift实践:使用CoreData完成一个通讯录存储

Core Data架构 一个基本的 Core Data 栈由四个主要部分组成:托管对象 (NSManagedObject),托管对象上下文 (NSManagedObjectContext),持久化存储协调器...image.png NSManagedObject是我们的数据模型,也就是我们存储的对象。这些对象都保存在NSManagedObjectContext中,每个存储对象都知道自己对应哪个上下文。...CoreData的基本读取操作 2. 1 获取CoreData已经保存数据的五个步骤 获取总代理和托管对象总管 从Entity获取一个fetchRequest 根据fetchRequest,从managedContext...3.1 Xcode创建默认带数据库的工程 image.png 在 Xcode 创建工程时,提供了创建 CoreData 的模板,只需要我们在创建时,勾选 CoreData 选项,Xcode 就会自动创建出数据模型文件...来来来,这就是最开始我们使用Xcode创建默认带数据库的工程的原因。使用了这个选项,会自动的在AppDelegate中生成相应的代码。

2.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    「死磕」Core Data——入门

    Managed Object Model 直观点,你可以把它理解为就是Xcode中后缀为xcdatamodel的文件。...3:直接勾选Core Data 创建项目时,如果直接勾选Core Data复选框,项目模版会在AppDelegate类中直接帮你初始化好Core Data Stack,自动创建和上面情况1类似的代码(Xcode8...如果是Xcode8之前的版本自动创建的Core Data Stack,会不一样(跟情况2类似),这里不再赘述。...也就是你要保存什么东西,这些东西有什么特性,这些东西之间有什么关系……Xcode提供了一套可视化的方案让我们「描述」这部分内容。...添加实体、实体的特性、关系示意图 坑:这里有个坑,在Xcode8中,Codegen下拉选择框中增加了Class/Definition这一选项,而且是默认的预设值,这时候系统会自动帮我们这个实体创建了NSManagedObject

    1.6K20

    详解持久化Core Data框架的原理以及使用---转自Bison的技术博客

    实体是由Care Data管理的模型对象,它必须是NSManagedObject类或其子类的实例。...当开发者使用Xcode的图形界面设计了实体与实体的关联关系之后,需要使用该对象来加载、管理应用的托管对象模型。...下面我们将开始把这个Empty Application项目一步步改造成Core Data项目。 具体步骤如下: 为该项目添加CoreData.framework框架。...coredata03.png 然后单击Xcode主菜单的Editor-->Create NSManagedObject Subclass菜单项,如果系统包含俩个以上的实体,Xcode将会弹出一个对话框让选择腰围哪些实体生成...NSManagedObject的子类,然后弹出对话框让选择NSManagedObject的子类的存储路径。

    2K50

    储存篇 - CoreData使用大全

    四、手动创建CoreData的使用 值得注意的是:下面的例子中我们可以直接使用创建的目的实体类如:Dog,也可以使用NSManagedObject 这一公共实体类,可以使用KVC赋值,也可以使用 ....2、增:增加数据 /** 增加数据 */ -(void)addData{ //传入上下文,创建一个Person实体对象: NSManagedObject *person =...如果是Xcode8之前的版本自动创建的Core Data Stack,会不一样(跟情况2类似),如下图: ? 一个大坑: ?...这里有个坑,在Xcode8中,Codegen下拉选择框中增加了Class/Definition这一选项,而且是默认的预设值,这时候系统会自动帮我们这个实体创建了NSManagedObject子类,我们不需要再创建实体类...所以,如果你想自己手动创建NSManagedObject子类,就要把系统预设的Class/Definition改为Manual/None。

    3.6K20

    Ask Apple 2022 中与 Core Data 有关的问答 (下)

    不过在新版的 Xcode( 至少从版本 13 起 )中,两者之间已经没有区别了。都会生成两个文件,而且如果用户在类的定义中添加了自定义属性,Xcode 也不会在重新生成的代码中对其进行覆盖。...当生成文件后,需要将 Entity 切换成 Manual /None 模式,否则 Xcode 会出现类型重复声明的错误( Xcode 中还会有另一份 Entity 定义保存在项目内部 ),如果仍无法编译...NSManagedObject 符合 ObservableObject 协议,这意味着当它的属性值发生变化时将会通过 Publisher 通知订阅者。...我手动生成了 NSManagedObject 代码并实现了 Codable 协议来实现这一目标。有什么更好的处理方法吗?谢谢。A:Codable 无法准确地对对象图中的对象进行单独编码。...当 NSManagedObject 包含关系时,对其进行编码是极为困难的。

    4.7K20

    肘子的 Swift 周报 #049| 创新可以有很多种

    ★尽管 SwiftData 的默认实现当前基于 Core Data,但由于 SwiftData 没有为 Model 单独声明 NSManagedObject的子类,因此这一命名约束并不适用,开发者仍可以自由地使用...SwiftData 表达式探究 (SwiftData Expressions)[7] Keith Harrison[8] SwiftData 在其初版中因缺少类似 NSExpression 的构建能力,...内存泄漏:一部 Xcode 侦探故事 (The Memory Leak: An Xcode Detective Story)[13] Jacob Bartlett[14] 由于内存泄漏问题,Jacob...squires: https://x.com/jesse_squires [7] SwiftData 表达式探究 (SwiftData Expressions): https://t.ly/bZsXB [8].../jacobs_handle [15] visionOS 2 PortalComponent:更符合期待的传送神器: https://t.ly/x2Z8v [16] Puffinwalker: https

    35300

    在Xcode7中搭建python开发环境

    在Xcode7中搭建python开发环境 我使用的版本为Version 7.3 (7D175),关于基础配置部分,参考了Xcode6中搭建python开发环境的方法 环境搭建 1.找到电脑上安装Python...2.打开Xcode7,选择File->New->Project,将弹出新建Project的菜单,如图 ?...8.通过步骤7可以进入隐藏目录,选择/usr/bin/python后,就可以把python加入到步骤6中显示的Executable中了,注意观察步骤6截图,需要去掉debug Executable,至于为什么一定要去掉呢...运行测试 1.在项目上右键,选择New File新建文件,并且需要选择OS X下的Others选项卡,文件类型为Empty,命名需要为你刚刚在Scheme里添加的文件名,例如AppMain.py...2.编写代码,并点击Run,就可以实现python程序在Xcode下的编译和运行了。 ? ----

    1.2K20
    领券