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

相关文章

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

python如何创建等差数列

《python如何创建等差数列》:本文主要介绍python如何创建等差数列的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python创建等差数列例题运行代码回车输出结果总结python创建等差数列import numpy as np x=int(in

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关