首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Ask Apple 2022 中与 Core Data 有关问答

如想实现实时切换同步状态,参阅 实时切换 Core Data 云同步状态[5] 一文。...没有枚举值情况下,通过 rawValue 可以将其转换为 Core Data 支持任意属性类型之一。...如果你对查询有特别的需求的话,可以将枚举类型中关联数据打散,实体中,将所有的关联值都定义成属性,并增加一个与枚举对应类型属性托管对象中定义一个枚举类型计算属性,通过它对数据进行转换。...使用 Core Data with CloudKit ,该属性值将在 iCloud 中以加密形式进行保存。Core Data 目前并不支持对 SQLite 进行加密。...如果 Core Data 内置合并策略无法满足你需求,创建自定义合并策略或许是不错选择。多对多关系中创建谓词Q:我视频实体与标签具有多对多关系,并且我有一个带有一些标签 ID 数组。

2.8K20

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

CoreData作为Apple亲儿子,依然App需要存储结构化数据上发挥着重要作用。CoreData已经超过十年了,而且亲爹还在积极维护着它。...image.png Monster、Indeed这些海外主流招聘网站看一下iOS职位,基本上都会大大写着要求会熟练使用CoreData。...如果保存失败,进行处理 保存到数组中,更新UI 3. 更新一个通讯录列表页Demo 需求:完成一个通讯录列表页。...3.1 Xcode创建默认带数据库工程 image.png Xcode 创建工程,提供了创建 CoreData 模板,只需要我们创建,勾选 CoreData 选项,Xcode 就会自动创建出数据模型文件...第三步,设计Entity里面的属性。咱们这个Demo需求里面只需要一个人名,所以就只设置了一个名字叫做name属性,类型是String。 其他更多属性类型,我们会在下面一篇文章分享。

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

Swift实践:使用CoreData存储多种数据类通讯录1. CoreData支持存储数据类型2. 使用CoreData存储多种数据类通讯录3. Codable

1.2 Decimal Decimal为SQL Server、MySql等数据库一种数据类型,不属于浮点数类型,可以定义划定整数部分以及小数部分位数。...image.png 2.1 CoreData基本读取操作 2. 1.1 获取CoreData已经保存数据五个步骤 获取总代理和托管对象总管 从Entity获取一个fetchRequest 根据fetchRequest...如果保存失败,进行处理 保存到数组中,更新UI 2.2 多种类型存储 let imgData = from.value(forKey: "avatar") as?...String 来来来,就这样轻松easy把各种类型转换好啦~ 然后就可以存入进去了呐。 3....写过的人应该都知道实现 NSCoding 协议代码写起来很痛苦,特别想哭,尤其是当属性非常多时候。 于是乎,Swift 4 中引入了 Codable 帮我们解决了这个问题。

2K30

iOS CoreData (一) 增删改查

Core Data是iOS5之后才出现一个框架,本质上是对SQLite一个封装,它提供了对象-关系映射(ORM)功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中数据还原成...OC对象,通过CoreData管理应用程序数据模型,可以极大程度减少需要编写代码数量!...等属性,如下图 [创建实体.png] 3、生成对应实体实体类,在此之前要注意下图两个设置部分,否则会引起崩溃现象 [注意1.png] [注意2.png] [创建实体类.png] [创建实体类.gif]...,iOS10以下和iOS10之后生成不一样,出现了一个新类NSPersistentContainer。...详情可以看看这篇文章:http://blog.csdn.net/u013263917/article/details/53277708 [iOS10以下系统创建模型文件自动生成关联数据库代码(转摘)

1.2K70

iOS CoreData (一) 增删改查

Core Data是iOS5之后才出现一个框架,本质上是对SQLite一个封装,它提供了对象-关系映射(ORM)功能,即能够将OC对象转化成数据,保存在SQLite数据库文件中,也能够将保存在数据库中数据还原成...OC对象,通过CoreData管理应用程序数据模型,可以极大程度减少需要编写代码数量!...自己创建模型文件.png 2、data Model 中创建项目中需要用到实体(Entities),例如,创建一个Student 实体(第一字母必须是大写),以及添加一些name、age、sex 等属性...,iOS10以下和iOS10之后生成不一样,出现了一个新类NSPersistentContainer。...iOS10以下系统创建模型文件自动生成关联数据库代码(转摘).jpeg ? iOS10之后系统自动生成广联数据库代码.png ?

1.1K80

老司机出品——数据持久化之基于FMDBORM数据库设计

,你也可以通过runtime获取属性列表来自动完成转换,但是你要注意是,想使用runtime自动转的话,你所有属性最好都是遵循类。...他使用方法我也是扔链接吧。iOS CoreData (一) 增删改查 他优势在于如果你一开始就使用CoreData搭好一个框架的话,那么之后使用中将会减少很多代码量。...实现思路大概如下: 找出模型中所有需要落库属性 将需要落库属性类型转换为数据库支持类型 落库 所以有了大致思路我们就能以梳理出一套方案: runtime 获取所有属性并进行动态转换 这其中还是参考了很多...YYModel获取属性一些方案,对此由衷向大神致以崇高敬意。...他优势在于: 面向对象 无需考虑slq语句组装 无需指定模型与数据表对应关系 无入侵性,现有工程模型无需做修改,直接使用。 遵循协议后自定义ORM映射关系、落库属性黑白名单等。

1.1K30

iOS开发之表视图爱上CoreData

接触到CoreData,感觉就是苹果封装一个ORM。...,点击添加按钮首先得通过上下文获取我们实体对象,获取完实体对象后再给实体对象属性赋上相应值,最后调用上下文save方法来存储一下我们实体对象。...往sqlite中添加数据,要想在我们TableView中显示还需要通过CoreData把我们存储sqlite中数据来查询出来,再用CoreData给我们提供方法把查询结果做一个转换转换成适合...a.TableViewController我们需要声明如下两个属性,一个用于获取上下文,一个用于存储返回结果 1 2 3 4 //声明通过CoreData读取数据要用到变量 @property (strong...return YES; } ​    b.开启编辑功能以后我们就可以tableView对应方法中来实现删除功能啦,当点击删除,我们需呀获取cell对应索引CoreData实体对象,然后通过上下文进行删除

2.1K80

如何在 Core Data 中进行批量操作

批量删除对 Core Data 中关系提供了有限度支持,详细内容见下文。 批量更新 相较于批量删除,批量更新除了需要指定实体以及谓词外( 省略 ),还要提供需要更新属性和值。...转换成 SQL 语句,并把这个语句发送给 SQLite SQlite 执行这个语句,将匹配查询条件所有数据返回给持久化存储( 包括对象 ID、每行数据属性内容、数据版本等信息 ),持久化存储将其保存在行缓存中...默认情况下 Core Data 为 SQLite 启用了 WAL 模式,当 SQL 事务量过大,WAL 文件尺寸会急速增加并达到 WAL 预设检查点,容易造成文件溢出,从而导致操作失败。...用约束来控制批量添加行为 Core Data 中,通过在数据模型编辑器中将实体中某个属性( 或某几个属性 )设置为约束,以使此属性具有唯一性。.../ [7] Core Data 是如何在 SQLite 中保存数据: https://www.fatbobman.com/posts/tables_and_fields_of_CoreData/ [8

1.8K30

iOS面试题梳理(二)

KeyPath、KVC、KVO 键路径(KeyPath): 1.一个给定实体中,同一个属性所有值具有相同数据类型。 2.键-值编码技术用于进行这样查找,它是一种间接访问对象属性机制。...当我们调用一个静态方法,需要对对象进行 release 吗不需要,静态方法(类方法)创建一个对象,对象已被放入自动释放池。自动释放池被释放,很有可能被销毁。...1.属性列表:只有NSString、NSArray、NSDictionary、NSDatawriteToFile;存储依旧是plist文件。...提供是对象-关系映射功能,也就是说,CoreData可以将Objective-C对象转换成数据,保存到SQL中,然后将保存数据还原成OC对象。...8.CoreData特征: 1.通过CoreData管理应用程序数据模型,可以极大程度减少需要编写代码数量。 2.将对象数据存储SQLite数据库已获得性能优化。

1.2K101

Core Data 是如何在 SQLite 中保存数据

ZITEM 实体中属性对应字段为 Z + 属性名称(全部大写),本例中为 ZTIMESTAMP 对于大写后名称一致属性属性定义是大小写敏感),将为其他重名属性添加编号。...Z_UUID 字段 当前数据库文件 ID 标识( UUID 类型)。可以通过托管对象协调器获取该值。将 NSManagedObjectID 转换存储 URL ,该值表示对应持久化存储。...因此 Core Data 定义数据模型,开发者无须为实体特别定义主键属性(事实上也无法创建自增主键)。... SQLite 中对应字段为 Z_UUID + Z_ENT + Z_PK 。通过将 NSManagedObjectID 转换存储格式 URL ,可以将它构成清晰地展示出来。...保存冲突判断 Core Data 保存数据,通过乐观锁方式来判断是否会出现保存冲突情况。而乐观锁判断依据则是根据每条记录 Z_OPT 数据,采用了版本号机制。

1.5K20

iOS开发之使用XMPPFramework实现即时通信(二)

1.使用XMPPFramework前准备 获取XmppStream和激活要用组件,AppDelegate添加代码。以后要用xmppStream,要通过AppDelegate获取。...初始化消息组件时候,要指定保存策略,一般可以选CoreData还是内存。...指定完保存策略后实例化Message是要关联保存策略,之后也是需要在XMPPStream中进行激活,最后要获取CoreData上下文。...代码实现 获取用户列表代码中就会用到我们之前注册Roster内容,因为我们实例化Roster时候指定保存策略是用CoreData进行保存,并且是自动获取好友列表。...所以获取好友列表TableViewController中我们只需要通过CoreData来获取好友列表即可。

1.2K60

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

2.手动配置环境 iOS允许创建项目勾选“Use Core Data”复选框,通过该方式创建项目已经完成了所有Core Data必须资源初始化,但此处并不打算使用这种方式来初始化Core Data...、NSManagedObjectContext修改应用程序委托类接口部分,接口部分定义上面3个核心API属性,并增加一个对NSManagedObjectContext对象执行存储方法、一个获取应用...= nil) { // 如果托管对象上下文中包含了未保存修改,执行保存,如果保存失败记录错误信息 if ([managedObjectContext hasChanges...该方法第1个参数为实体名,第2个参数为NSManagedObjectContext对象。为新实体设置属性。调用NSManagedObjectContext对象save:方法执行保存。...: 首先获取要修改实体,必须处于NSManagedObjectContext管理下实体;然后修改实体属性;再调用NSManagedObjectContext对象save:方法执行保存

1.4K50

【IOS开发高级系列】CoreData专题

取消行为会沿着数根节点蔓延到叶子。 progress.cancel()         可以 cancellationHandler 属性设置取消后执行block,这里不再多说。...接着谈谈 NSBatchUpdateResult ,它有一个 result 属性和 resultType属性, result 中内容跟 resultType 有关,可能是成功或者失败,有可能是每行被更新...一旦有非法数据录入数据库,下次加载并修改 NSManagedObject 时候就会导致数据验证失败。...:             为Entity简单添加一个属性             为Entity移除一个属性             属性值由 OptionalNon-optional 之间转换...界面,即为XCode工作区右侧工具栏);     3.修改新数据模型mydata2,文件上添加,修改或删除字段及表;     4.程序启动添加如下代码: NSDictionary *optionsDictionary

41050

IOS 使用Core Data读写数据库

image.png //项目创建成功后,项目文件夹中将自动生成一个拥 有.xcdatamodelId扩展名文件,该文件可以使用图形化方式编辑数据 模型,该文件中包含了Entities、Properties...然后【Attributes】设置区,点击+加号图标 为User实体添加一个新属性userName,并设置Type类型为String。...最 后使用相同方式,为User实体添加第二个属性password。 //完成Entity模型创建之后,接着来创建一个托管对象类 NSManagedObject。...扩展文件,并在User.swift代码中添加 一行代码@objc(User),因为Swift类型文件中,需要在暴露给OC使用 类、属性和方法声明前面,加上@objc修饰符 image.png...20 }catch 21 { 22 print(“保存数据失败。”)

96840

【IOS】IOS开发问题解决方法索引(五)

13.1 Batch Updates CoreData中想要更新大量数据,我们往往要将大量修改后NSManagedObject 加载到 NSManagedObjectContext 中并保存,这会占用大量内存...接着谈谈 NSBatchUpdateResult ,它有一个 result 属性和 resultType属性, result 中内容跟 resultType 有关,可能是成功或者失败,有可能是每行被更新...一旦有非法数据录入数据库,下次加载并修改 NSManagedObject 时候就会导致数据验证失败。...NSAsynchronousFetchRequest 初始化时需要传入两个参数赋值给属性: 1. completionBlock 属性,允许我们抓取完成后执行回调block; 2....取消行为会沿着数根节点蔓延到叶子。 progress.cancel() 可以 cancellationHandler 属性设置取消后执行block,这里不再多说。

85620

Core Data 中查询和使用 count 若干方法

time: 0.0002s CoreData: annotation: total fetch execution time: 0.0004s for 190 rows. 190 */ 通过派生属性预存了...复杂逻辑将对数据更改效率产生一定影响。 为已经上线使用 CoreData 数据库添加派生属性或 willSave 方法,需通过 mapping 或迁移代码处理原有数据新增属性。...九、查询某对多关系所有记录 count 数据 当我们想统计全部记录(符合设定谓词)某个对多关系合计值没有使用派生属性或 willSave 情况下,可以使用下面的代码: let fetchquest...需根据 propertiesToFetch,对字典 Value 进行类型转换 使用此方法,SQLite 将在内部对 attachement 进行计数。...当业务逻辑中有类似的需求,可以考虑为托管对象预设适合分组属性属性内容也可以通过派生或 willSave 来处理。

4.6K20

SwiftUI 与 Core Data —— 安全地响应数据

例如,当你创建一个带有字符串属性新对象,初始值( 没有默认值情况下 )是 nil,这在对象被验证之前( 通常在 save )是没有问题。...修改为 String )当声明代码可以部分改善视图中使用托管对象友善度。相较于将具有默认值属性声明为可选值类型( 例如 String ),数值属性声明则更加令人困惑。...Core Data 受限于 Objective-C 中表达类型限制,在即使使用了标量转换情况下( Scalar )也不具备与 Swift 原生类型对应能力。...可能开发者会有这样疑问,假如某个实体属性模型中被定义为可选,且托管对象类型声明中也为可选值类型( 例如上方 timestamp 属性 ),那么如果在可以保证 save 一定有值情况下,是否可以使用中使用...将转换过程运行于托管对象上下文所在线程中,由于无法获取上下文信息,转换失败

3.2K20

Core Data 基础

NSManagedObject SubClass 3、选择存储位置,请注意细节 (1) (2) (3) 遇到坑!!!!...实体描述 设置对象属性 保存数据 (1)tableview代理方法内实现修改数据 (2) viewDidLoad方法 中设置代理 第 7 步:删除 获取要删除 实体描述 让管理上下文删除对象...—— 从内存删除 保存对数据操作 —— 从数据库中删除 二、简介CoreData数据存储 Core Data 是 iOS SDK 里一个很强大框架,允许程序员以面向对象方式储存和管理数据 Core...实体描述 设置对象属性 保存数据 (1)tableview代理方法内实现修改数据 (2) viewDidLoad方法 中设置代理 第 7 步:删除 获取要删除 实体描述 让管理上下文删除对象...—— 从内存删除 保存对数据操作 —— 从数据库中删除

88430
领券