Tag: 核心数据

使用内置的CoreData选项在外部位置存储Blob

我pipe理的对象具有图像属性。 由于在CoreData中存储大块是一个坏主意,我试图使用内置的CoreData选项“ 存储在外部logging文件 ”,您可以在数据模型检查器中看到。 尽pipe启用此选项,我没有看到任何图像数据被存储在外部。 从大小来看,似乎他们仍然被保存在sqlite文件中。 有什么问题?

NSPredicate在关系实体内进行search

我有一个名为Band的实体,它与Category实体有多对多的关系。 Category实体只包含一个categoryNamestring属性。 一个例子logging: Band: bandName: Kiss bandCategories: – > BandCategory:categoryName:Glam – > BandCategory:categoryName:Rock 例如,我将如何使用NSPredicatesearch所有与乐队类别相匹配的乐队?

如何在Swift中分配CoreData多对多的关系?

我有一个NSManagedObject类 class Disease: NSManagedObject { @NSManaged var diseaseId: String @NSManaged var diseaseName: String @NSManaged var dogBreed: NSSet } 如何添加一个新的关系dogBreed? 如果我更改vartypes为NSMutableSet,更改不保存到数据库。 有任何想法吗?

魔法logging导入(下一步)

我已经把标题的下一步,因为这是不一样的问题,因为我几乎完全相同的标题上一个问题。 我有一个Person实体。 Person ——– name – mappedKeyName: FullName email – mappedKeyName: EmailAddress personID – mappedKeyName: Id ——– photos 和一个Photo实体。 Photo ——– image createDate – mappedKeyName: Date photoID – mappedKeyName: Id ——– owner (type Person) – mappedKeyName: UserId – relatedByAttribute: personID 还有其他一些与Person相关的对象,这些JSON也是如此… { ObjectId : blah, Owner : { Id : 12345asdfg, FullName : Oliver, EmailAddress […]

Cross-Store与Fetched Properties的弱关系?

我想在我的核心数据模型中将我的参考数据与我的用户数据分开,以简化我的应用程序的未来更新(因为我打算将数据库存储在云上,并且不需要将参考数据存储在云上这是我的应用程序的一部分)。 因此,我一直在寻找一种使用提取的属性来编码跨商店关系的方法。 我还没有find任何这样的示例实现。 我有一个使用2种configuration的核心数据模型: 数据模型configuration1:UserData(相对于用户的实体) 数据模型configuration2:ReferenceData(相对于应用程序本身的实体) 我为这两个configuration设置了两个不同的SQLite持久性存储。 UserDataconfiguration(和存储)包含实体“用户” ReferenceDataconfiguration(和存储)包含实体“types”和“项目”。 我想创build两个单向弱关系如下: “用户”具有唯一的“types” 一个“用户”有很多“项目” 这是我的问题: 我如何设置我的属性? 我是否需要每个关系的2个属性(一个用于存储唯一ID,另一个用于访问我提取的结果)? 这种弱关系可以下令吗? 有人能给我一个这个例子的实现吗? 作为马库斯的回答的后续: 通过论坛和文档看,我读了我应该使用我的实体实例的URI表示而不是objectID。 这背后的原因是什么? // Get the URI of my object to reference NSURL * uriObjectB [[myObjectB objectID] URIRepresentation]; 接下来,我想知道,如何将我的对象B URI(NSURL)存储在我的父对象A中作为弱关系? 我应该使用哪种属性types? 我如何转换? 我听说过档案…? 然后,稍后我应该以相同的方式检索托pipe对象(通过未转换/取消归档URIRepresentation)并从URI获取对象 // Get the Object ID from the URI NSManagedObjectID* idObjectB = [storeCoordinator managedObjectIDForURIRepresentation:[[myManagedObject objectID] […]

核心数据模型文件多核到一个xcode项目是否可行?

我正在研究一个我正在处理核心数据的ipad应用程序。 应用程序pipe理的数据可以分为两类。 第一种数据仅适用于该设备或应用程序。 而另一类数据需要在具有相同应用的各种设备之间同步。 所以在scnerio中,我想到了在我的项目中有两个模型文件和两个corressponding的sqlite文件。 并同步一个sqlite文件,以实现syching。 请build议,如果我的方法是正确和可行的。 如果没有,那么请build议其他解决scheme。 嘿家伙请尝试理解这个问题。 在这里我正在谈论两个不同结构的sqlite文件。 意思是“.xcdatamodel”模型文件 谢谢。

为什么这段代码引起“CoreData:error:(19)PRIMARY KEY必须是唯一的”错误?

此代码引发“CoreData:错误:(19)PRIMARY KEY必须是唯一的”错误。 Day实体只有一个是NSDate的when属性和一个叫做tasks的多对多关系。 为什么这个错误? 如果具有特定date的某天已经存储,则取回,否则我将其插入。 所以,对于每一天的对象,应该有一个不同的属性。 我不确定这是不是主键。 如何解决这个问题? 先谢谢你。 NSMutableSet *occurrences = nil; occurrences = … NSMutableOrderedSet *newSet = [NSMutableOrderedSet orderedSetWithCapacity:[occurrences count]]; for(NSDate *current in occurrences) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; // try to find a corresponding Day entity whose when attribute is equal to the current occurrence // if none is available, […]

com.apple.CoreData.SQLDebug不起作用

我在iOS应用程序中使用MacOS Sierra上的Swift与Xcode 8一起工作。 我几个月前意识到SQLDebug停止工作…(它曾经在我的应用程序工作)… 我已经创build了一个新的空项目启用coredata标志..然后我创build了一个实体的属性,我在ViewDidLoad中执行此func和Xcode不logging的SQL func fetchAllData(){ //1 delegate let appDelegate = UIApplication.shared.delegate as! AppDelegate let managedContext = appDelegate.persistentContainer.viewContext //2 prepare fetch request let fetchRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName:"Entrenamientos") //3 make fetch do{ let fetchedResults = try managedContext.fetch(fetchRequest) as! [NSManagedObject] } catch{ } }

找不到适合核心数据迁移的映射模型

我正在尝试执行需要MappingModel的iOS Core Data迁移。 由于某些原因,核心数据无法使用映射模型,并且会回到自动轻量级迁移。 我启用MigrationDebug选项来获取更多信息,而我所看到的是没有意义的。 映射模型的源哈希和目标哈希是相同的,忽略顺序,源和目标ManagedObjectModels。 看起来应该使用映射模型,但是日志说“找不到合适的映射模型”。 这里是(被忽略的)日志: CoreData: annotation: (migration) will attempt automatic schema migration CoreData: annotation: (migration) looking for mapping model with source hashes: { TSBaseEntity = <4797118c 50068f2f f544d9a9 4884720b 55ec7e4d 0d4c8f4e 1ee44be3 b06d2edc>; TSBuyer = <91e837d1 3f348913 eff634d6 6fb9b3a6 747e2390 fbdc4ae6 32cc56d6 7582d4a8>; … } destination hashes: { TSBaseEntity = <4797118c […]

将Core Data与JSON API同步的最有效方法是什么?

将我的核心数据模式与提供JSON的远程API同步的最佳方式是什么? 目前,我正在循环查看核心数据的JSON响应中的每个字典,以查看API ID是否存在。 这很好,但是现在要做的就是删除所有不在服务器上的本地对象。 这是我的JSON数据的一个例子: [ { "id":1234, "name":"My first object", "description":"This is a long string with lots of information" }, { "id":1235, "name":"My second object", "description":"This is a long string with lots of information" } ] 目前我能想到完成这个的唯一方法就像下面这样: NSArray *jsonData = // Convert json data to array using NSJSONSerialization NSInteger fetchedCount = _fetchedResultsController.fetchedObjects.count; if (fetchedCount […]