继上一篇文章末尾提到的,一支队伍可以添加多名球员,不过一名球员只能属于一支队伍中,这分别对应着Core Data中一对多和一对一的属性关系:
如上两图,是在Team实体里面添加了一个players关系,指向Player实体,可以一支球队关联多名球员,并且最多只允许关联15名球员。
同样地,也为Player实体添加team关系,指向Team实体:
一名球员只能关联一支球队,并且让这个关系成双向的,即一个Player对象属于某支球队时,该球队的players属性就自动关联该Player对象。
做完以上对表关系的修改,再次运行程序。
Oops,运行不起来——
- 2013-01-16 16:56:18.667 cdNBA[18591:c07] Error : The operation couldn’t be completed. (Cocoa error 134100.)
- 2013-01-16 16:56:18.670 cdNBA[18591:c07] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.'
这是由于我们刚才做了一番修改,persistentStoreCoordinator无法适应新的数据模型。
当开启一个新版本时,如果数据模型发生变动,我们需要创建一个新版本使用的数据模型:
并将其设置为当前版本使用的数据模型:
So,我们刚才发生的变动都应该应用在cdNBA 2.xcdatamodel上。
除此之外,还需要在persistentStoreCoordinator添加存储文件时设置一个选项:
- - (NSPersistentStoreCoordinator *)persistentStoreCoordinator
- {
- if (nil != _persistentStoreCoordinator) {
- return_persistentStoreCoordinator;
- }
- NSString *storeType = NSSQLiteStoreType;
- NSString *storeName = @"cdNBA.sqlite";
- NSError *error = NULL;
- NSURL *storeURL = [NSURLfileURLWithPath:[[selfapplicationDocumentsDirectory] stringByAppendingPathComponent:storeName]];
- NSDictionary *options = [NSDictionarydictionaryWithObjectsAndKeys:
- [NSNumbernumberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
- [NSNumbernumberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
- _persistentStoreCoordinator = [[NSPersistentStoreCoordinatoralloc] initWithManagedObjectModel:self.managedObjectModel];
- if (![_persistentStoreCoordinator addPersistentStoreWithType:storeType configuration:nilURL:storeURL options:options error:&error]) {
- NSLog(@"Error : %@\n", [error localizedDescription]);
- NSAssert1(YES, @"Failed to create store %@ with NSSQLiteStoreType", [storeURL path]);
- }
- return _persistentStoreCoordinator;
- }
做完上面的工作,再跑一遍Demo。
相关推荐
### Core Data: 更新至 Swift 3 #### 一、引言与Swift的融合 本书旨在为读者提供关于如何最大限度地利用Core Data框架的同时避免潜在陷阱的清晰指导。本书假设读者已经熟悉Swift语言及其iOS开发环境,但对于无论是...
随着企业数据处理需求的不断增长以及业务复杂性的提升,SAP推出了一种全新的技术——ABAP Core Data Services(简称CDS),旨在帮助开发者更高效地管理数据,并通过标准化的数据模型来提高开发效率及数据一致性。...
在iOS应用开发中,Core Data是苹果提供的一种强大的数据持久化框架,用于管理应用程序的数据模型。数据验证是确保数据质量的重要环节,特别是在用户输入数据时,防止无效或不合法的数据进入数据库。本节将深入探讨...
本书将涉及如何在Core Data中管理不同版本的数据模型,并保证在应用更新过程中数据的完整性和一致性。 知识点六:iCloud同步 苹果的iCloud是现代iOS应用的一个重要组成部分,它可以用来同步用户数据到云端并保持...
- **数据版本和迁移**:应用程序的数据结构可能会随着版本迭代而发生变化,第八章“Versioning and Migrating Data”讲解了如何处理数据模型的升级,以及数据迁移的方法。 - **使用FetchedResultsController管理...
1. **模型(Model)**:这是Core Data的核心,定义了应用程序的数据结构和关系。在Xcode中,开发者可以通过图形界面创建实体(Entities),并为实体添加属性(Attributes)和关系(Relationships)。 2. **上下文...
- Core Data提供了一套完整的迁移机制,可以帮助开发者平滑地过渡到新版本的数据模型。 7. **实时同步** - 对于需要多设备间同步数据的应用场景,Core Data提供了支持实时同步的功能。 - 通过配置合适的同步策略...
#### 四、服务目录数据模型 服务目录数据模型定义了ServiceNow中提供的服务项目和产品。这对于提供一致的服务体验非常重要。 ##### 关键概念 - **Service Catalog**: 包含了所有可用服务项目的集合。 - **Content...
在iOS应用开发中,Core Data是苹果提供的一种强大的对象图管理框架,用于处理应用程序的数据模型。它可以帮助我们存储、检索和管理数据,特别是在基于UITableView或UICollectionView的界面中,与Core Data结合使用能...
在第四章“Creating a Data Model”中,介绍了如何创建和管理数据模型,这是使用Core Data进行高效数据管理的关键部分。第五章“Working with Data Objects”讲解了如何在应用中操作和管理数据对象,这是日常开发中...
《Core Data by Tutorials v4.0》是关于苹果开发框架Core Data的一份详细教程,主要针对Swift 4编程语言。Core Data是苹果提供的一种数据管理框架,它为iOS、macOS、watchOS和tvOS应用程序提供了模型层的抽象和管理...
在Core Data中,我们首先需要定义一个数据模型,也就是实体(Entity)。在本例中,可能有一个名为"Item"的实体,包含一些属性如"name"和"description"。使用`NSManagedObject`子类来表示这个实体,然后通过`...
- **Core Data架构**:介绍了Core Data的基本组成部分,包括实体(Entity)、属性(Attribute)、关系(Relationship)等概念,以及它们是如何组织在一起形成一个数据模型的。 - **数据建模**:探讨了如何设计有效的数据...
Core Data提供了数据模型版本管理及迁移的机制,确保旧版本数据可以被新版本的应用访问和处理。 9. **iCloud同步**:如何利用Core Data与iCloud结合,实现数据的云端同步。 10. **单元测试**:单元测试是保证代码...
Core Data是苹果公司提供的一个框架,用于管理应用程序数据模型对象的生命周期,它简化了数据持久化过程。在本书的介绍中,作者强调了其采用的方法论,同时在本书的各个章节中都包含了一些示例和实践练习,旨在帮助...
- 当数据模型发生变化时,Core Data 支持自动迁移旧版本的数据到新版本的数据模型中,确保数据的一致性和完整性。 **4. 多线程支持** - Core Data 支持多线程操作,可以在不同的线程中创建不同的上下文,以便更好...
在本书中,你可以深入了解到Core Data的核心概念和工作流程,包括模型设计、实体关系、属性类型以及数据模型的版本管理。Core Data的模型层允许开发者定义应用程序的数据结构,而不仅仅是简单的表格和字段,它支持...
2. **数据模型设计**:如何使用Xcode的数据模型编辑器创建和管理数据模型,包括版本控制和迁移策略。 3. ** fetch请求**:学习如何编写和执行fetch请求,以查询和过滤数据,理解NSFetchRequest、NSSortDescriptor和...