Swift - 在已有项目上添加CoreData(之前创建时未勾选Use Core Data)

2024-02-15 21:38

本文主要是介绍Swift - 在已有项目上添加CoreData(之前创建时未勾选Use Core Data),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,问题描述

(1)使用 Core Data 可以很方便地实现数据持久化存储。如果项目需要使用 Cord Data,只需要在创建项目的时候,勾选“Use Core Data”。

原文:Swift - 在已有项目上添加CoreData(之前创建时未勾选Use Core Data)

 

(2)这样项目创建完毕后,项目中会自动添加一个同名的 xcdatamodeld 文件。同时 AppDelegate 中也会生成相关代码。

 

(3)如果我们项目之前创建时忘记勾选上“Use Core Data”,现在又想用 Cord Data 框架的话,也不用重新创建工程,只要手动配置下就好了。

 

2,手动添加 Cord Data 支持

(1)首先在项目中创建一个 xcdatamodeld 文件(Data Model)。

原文:Swift - 在已有项目上添加CoreData(之前创建时未勾选Use Core Data)

 

(2)文件名建议与项目名一致,比如我这里叫:hangge_1841.xcdatamodeld

原文:Swift - 在已有项目上添加CoreData(之前创建时未勾选Use Core Data)

 

(3)接着打开 AppDelegate.swift,在里面添加 Core Data 相关的支持方法(黄色部分)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

import UIKit

import CoreData

 

@UIApplicationMain

class AppDelegateUIResponderUIApplicationDelegate {

 

    var window: UIWindow?

 

    func application(_ application: UIApplication,

                     didFinishLaunchingWithOptions

        launchOptions: [UIApplicationLaunchOptionsKeyAny]?) -> Bool {

        return true

    }

 

    func applicationWillResignActive(_ application: UIApplication) {

    }

 

    func applicationDidEnterBackground(_ application: UIApplication) {

    }

 

    func applicationWillEnterForeground(_ application: UIApplication) {

    }

 

    func applicationDidBecomeActive(_ application: UIApplication) {

 

    }

 

    func applicationWillTerminate(_ application: UIApplication) {

    }

 

    // MARK: - Core Data stack

    lazy var persistentContainer: NSPersistentContainer = {

        let container = NSPersistentContainer(name: "hangge_1841")

        container.loadPersistentStores(completionHandler: { (storeDescription, error) in

            if let error = error as NSError? {

                fatalError("Unresolved error \(error), \(error.userInfo)")

            }

        })

        return container

    }()

     

    // MARK: - Core Data Saving support

    func saveContext () {

        let context = persistentContainer.viewContext

        if context.hasChanges {

            do {

                try context.save()

            } catch {

                let nserror = error as NSError

                fatalError("Unresolved error \(nserror), \(nserror.userInfo)")

            }

        }

    }

}


(4)经过上面的配置后,现在的项目就可以使用 CoreData 了。CoreData 具体用法可以参考我之前写的这篇文章:Swift - 使用Core Data进行数据持久化存储
原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_1841.html

这篇关于Swift - 在已有项目上添加CoreData(之前创建时未勾选Use Core Data)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/712611

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

顺序表之创建,判满,插入,输出

文章目录 🍊自我介绍🍊创建一个空的顺序表,为结构体在堆区分配空间🍊插入数据🍊输出数据🍊判断顺序表是否满了,满了返回值1,否则返回0🍊main函数 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~ 🍊自我介绍   Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名“创始团队·嘉宾”

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

SpringBoot项目是如何启动

启动步骤 概念 运行main方法,初始化SpringApplication 从spring.factories读取listener ApplicationContentInitializer运行run方法读取环境变量,配置信息创建SpringApplication上下文预初始化上下文,将启动类作为配置类进行读取调用 refresh 加载 IOC容器,加载所有的自动配置类,创建容器在这个过程

Maven创建项目中的groupId, artifactId, 和 version的意思

文章目录 groupIdartifactIdversionname groupId 定义:groupId 是 Maven 项目坐标的第一个部分,它通常表示项目的组织或公司的域名反转写法。例如,如果你为公司 example.com 开发软件,groupId 可能是 com.example。作用:groupId 被用来组织和分组相关的 Maven artifacts,这样可以避免