Tag: 核心数据

可能将NSmanagedObject移动到另一个NSManagedContext?

我有两个NSManagedContext的,一个父母和一个孩子,我用于并发。 指定像这样: self.managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; self.backgroundContext = [[NSManagedObjectContext alloc] initWithConcurrencyType: NSPrivateQueueConcurrencyType]; self.backgroundContext.parentContext = self.managedObjectContext; 在我的一个视图控制器中,我调用了这个方法: [Stream followingStreamForUser:self.user fromDictionary:dict inManagedObjectContext: [AppController sharedAppController].backgroundContext]; 调用此方法会导致以下错误: Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Illegal attempt to establish a relationship '[…]' between objects in different contexts 看起来像self.user不在我的backgroundContext 。 我不知道是否有可能将我的self.user对象移动到我的backgroundContext或者如果可以看到我的用户对象被添加到上下文X的位置和时间。

从AppBundle与CoreData加载图像

我正在制作一个目录,其中我的collections视图中的单元格将是带有标签或PDF的图像。 会有很多collections,而且他们自己也是静态的。 我希望用户能够保存他喜欢的单元格,并在他自己的自定义视图中查看它们。 1)我可以将图像作为数据存储在核心数据中。 2)我可以在我的应用程序包中包含图像,并在每次启动应用程序时从那里加载图像。 我已经深入了解从Core Data Store读取数据的时候,在构build我的应用程序的时候会给我更多的select,并且提高性能,而不是从应用程序包中读取数据。 真的吗? 请记住,大部分数据是静态的。 在我的应用程序包和纯数据中都有图像序列化的图像似乎效率低下。 我想我宁愿把它全部放在商店里,但是它们必须在代码的某个时刻从捆绑中加载。 我很想知道其他开发人员如何做到这一点。

SWIFT CoreData NSManagedObject

我有一个自定义NSManagedObject(在Swift中),看起来像这样 import UIKit import CoreData @objc(Item) class Item: NSManagedObject { @NSManaged var title:String func entityName() -> String{ println("Entity Name") let item = "Item" return item } func insertItemWithTitle (title: String? , managedObjectContext:NSManagedObjectContext) -> Item{ println(title) let item = NSEntityDescription.insertNewObjectForEntityForName(entityName(), inManagedObjectContext: managedObjectContext) as Item if title { item.title = title! } return item } } 什么是正确的方式来初始化这样的东西,并使用它

RestKit:'NSInternalInconsistencyException',原因:'无法执行映射:没有`managedObjectContext`分配

我收到以下错误: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to perform mapping: No `managedObjectContext` assigned. (Mapping response.URL = https://www.someurl.com/lastrequest=2014-12-08T02%3A44%3A52Z)' 该应用程序停在RKResponseMapperOperation.m中的以下行: – (RKMappingResult *)performMappingWithObject:(id)sourceObject error:(NSError **)error { NSLog(@"managedObjectContext: %@, Source Object: %@ Error: %@", self.managedObjectContext, sourceObject, (*error).description); NSAssert(self.managedObjectContext, @"Unable to perform mapping: No `managedObjectContext` assigned. (Mapping response.URL = %@)", self.response.URL); …. 我注意到,在应用程序崩溃之前,上述方法被称为27(这个数字变化)。 在每个实例中,NSManagedObjectContext存在,即下面的行: 2014-12-07 […]

具有谓词的CoreData fetchRequest不正确地跳过NULL值

我有存储在我的CoreData中的对象看起来像这样: ID 名称 types 1只猫aaa 2狗bbb 3猿NULL 我基于这样的“types”属性获取这些对象: NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:self.entityName]; fetchRequest.predicate = [NSPredicate predicateWithFormat:@"type != %@", @"aaa"]; fetchRequest.fetchBatchSize = 100; fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"type" ascending:YES]]; NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"section" cacheName:nil]; fetchedResultsController.delegate = self; NSError *error = nil; [fetchedResultsController performFetch:&error]; 所以,我只是试图获取所有types不是“aaa”的对象。 取出请求不仅意外地省略了谓词中指定的具有“aaa”types的对象,而且还忽略了未设置types的对象(null),结果如下: ID 名称 types 2巴bbb 而不是我所期望的: ID […]

核心数据对象在不同的​​tableView部分

我有一个tableView与可扩展/可折叠部分和固定部分标题,我想要维护。 这是这样做的代码: – (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 6; } + (NSString*) titleForHeaderForSection:(int) section { switch (section) { case 0 : return @"Overdue"; case 1 : return @"Today"; case 2 : return @"Tomorrow"; case 3 : return @"Upcoming"; case 4 : return @"Someday"; case 5 : return @"Completed"; // default : return [NSString stringWithFormat:@"Section no. %i",section […]

在核心数据的一对多关系中,存储的数据无法显示在表格视图中?

我使用核心数据来build立一个一对多的关系,我的应用程序的场景是显示受尊敬的团队的成员。 dynamic添加团队和成员。 将数据存储在成员部分时发生此问题。 数据正在存储,但不会显示在表格视图中。 我得到这个错误。 data: { memberDesignation = ""; memberImage = nil; memberName = bbgbb; teams = nil; }) returned nil value for section name key path 'Teams.teams'. Object will be placed in unnamed section 因为我是核心数据的新手,所以我犯了一个愚蠢的错误。 我无法弄清楚我做错了什么。 我会告诉我做了什么,纠正我做错了什么。 请操纵我的代码,给我的答案,没有逻辑或随机答案,因为我没有足够的时间来尝试每一种可能性。非常感谢,提前感谢。 ER模型 团队表视图控制器 import UIKit import CoreData class GroupTable: UITableViewController, NSFetchedResultsControllerDelegate { let managedObjectContext = (UIApplication.sharedApplication().delegate […]

date谓词不起作用

来自核心数据的所有对象 { dtStartDate = "Jun 10, 2016-10:40 AM"; }, { dtStartDate = "May 12, 2016-06:55 AM"; }, { dtStartDate = "May 12, 2016-08:05 AM"; }, { dtStartDate = "May 12, 2016-02:30 PM"; }, { dtStartDate = "Jun 12, 2016-07:50 AM"; }, { dtStartDate = "Jul 12, 2016-08:50 AM"; }, { dtStartDate = "Jun 12, 2016-07:50 […]

确定coreData属性的types

我写了一个库,允许开发人员在coreData上应用SQL代码,如下所示: let manager = coreSQL() manager.prepare("INSERT INTO Entity (name, age) VALUES (?,?)") manager.execute(["Chuck Norris" , "76"]) 插入coreData我使用这个 let context:NSManagedObjectContext = appDel.managedObjectContext let newRow = NSEntityDescription.insertNewObjectForEntityForName(tableName, inManagedObjectContext: context) if (columnsArray.count == values.count){ for i in 0 ..< columnsArray.count{ newRow.setValue(values[i], forKey: columnsArray[i]) } do {try context.save()} catch _ {} } columnsArray = [“名称”,“年龄”] 值= [“查克·诺里斯”,“76”] 问题是,在我的coreData对象的年龄属性是整型的types,你可能会注意到查克·诺里斯的年龄是string,所以当我尝试执行我的应用程序时,我得到一个错误: 终止由于未捕获的exception'NSInvalidArgumentException'的应用程序,原因:'不可接受的属性types的值:属性=“年龄”; […]

multithreading的核心数据

我在主线程上有一个Core数据managedObjectContext,然后在后台线程上创build了另一个managedObjectContext。 如果后台线程有变化,我只需调用ManagedObjectDidSave通知。 我的问题是,如果我在主线上做了一个改变,我还需要告诉后台线程的managedObjectContext正确吗? 我有一个用户数据类,获取和设置主线程和后台线程的userdata。 我应该通过我调用这个userdata类的线程的pipe理对象,对吧? 谢谢你的帮助。