Tag: 核心数据

ios – 手动调用viewWillAppear()时出错(Objective-C)

我试图更新我的iOS应用程序的背景下的核心数据,我通过首先删除核心数据,然后将其添加回来。 但是,我需要某些function运行的时间段,但是当我尝试在后台执行所有操作时,这些function从不运行,除非我更改页面并返回到此页面。 所以我试图通过手动调用viewWillAppear()来解决这个错误,但是我得到以下错误。 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'An instance 0x17191c00 of class CardScanView was deallocated while key value observers were still registered with it. Current observation info: <NSKeyValueObservationInfo 0x16d99c30> ( <NSKeyValueObservance 0x16dcdf20: Observer: 0x17191c00, Key path: verifyingCard, Options: <New: YES, Old: NO, Prior: NO> Context: 0x0, Property: 0x16d5db30> 发生错误的类中的方法: – […]

coredata访问数据关系错误

我有coredata项目这里是我的.h文件: @interface Content : NSManagedObject @property (nonatomic, retain) NSString * title; @property (nonatomic, retain) NSString * body; @property (nonatomic, retain) Categories *category; @property (nonatomic, retain) NSSet *tags; @end @interface Content (CoreDataGeneratedAccessors) – (void)addTagsObject:(Tags *)value; – (void)removeTagsObject:(Tags *)value; – (void)addTags:(NSSet *)values; – (void)removeTags:(NSSet *)values; 我正在填充我的coredata,如下所示: NSError *error = nil; // Categories: NSManagedObjectContext *moc = [self managedObjectContext]; […]

从CoreData在NSDictionary中制作嵌套的JSON

我不知道标题是否与问题完全一致,但是如果你觉得缺less一些好的东西,编辑问题。 我想发送像JSON这样的特定格式的参数到AFNeworking以便将数据保存在服务器上。 我有一个名为fetchedDX的NSArray ,我用CoreData的值加载它作为fetchedDX = [Diagnoses MR_findAllWithPredicate:predicate]; 这是正确的价值,因为我在一个地方使用它的数量,它给了我正确的计数。 这是我准备发送的硬编码NSDictionary: NSDictionary *superBillData = @{ @"appointmentID": @"ABC", @"patientID": @"ABC", @"createdBy": @"ABC", @"lastChangedBy": @"ABC", @"Diagnoses":@[ @{ @"Code":@"hello world", @"shortDescription": @"my@you.com" }, @{ @"Code":@"hello 2", @"shortDescription": @"Lorem Ipsum" }, ]}; 这里的Diagnoses键是发送多个对象的键。 现在,我已经在fetchedDX数组中的这些数据作为核心数据给了我,但我不知道如何使一个dynamic的NSDictionary因为这个数组可以有一个或多个计数。 所以根据我创造的每个价值: @{ @"Code":@"hello world", @"shortDescription": @"my@you.com" } 这是我的实体的图片: 任何想法如何能够实现?

从不同的viewControllers中填充一个CoreData实体

我在我的iPad应用程序中为我的数据库构build了一个包含不同实体的Core数据模型。 我确实想从不同的viewControllers访问这些属性(并填充dBase)。 例如,在viewController A中有UITextFields,在viewController中有另一个UITextField。 我想要获取的信息来填充我的核心数据实体的不同属性… 那可能吗? 这样做的最佳做法是什么? 我的问题: 我在viewController A中声明了types为“entity”的对象 我用查看的文本填充这个实体的不同属性,也在viewController A中 我将对象(与我的实体types相同)存储在viewController A的NSMutableArray中 我使用不同的方法来保存和检索viewController A这个NSMutableArray 任何帮助或build议,将不胜感激! 🙂

奇怪的错误与iCloud使用CoreData

我使用了新的CoreData Recipes项目( iPhoneCoreDataRecipes示例代码 )中的示例代码来构buildiCloud中的现有iOS应用程序中的同步,该应用程序使用CoreData SQLite“数据库”与非常复杂的数据模型 – 关系(也许这是我的问题的原因或至less一个提示的一部分)。 在此之前,应用程序工作正常,没有任何关于数据库的警告。 但是现在当我向实例添加实体或者尝试保存实体时,debugging器会出现像这样的错误: +[PFUbiquityPeerRange(UbiquityMethods) peerRangeForLocalPrimaryKey:inStoreNamed:andEntityName:inManagedObjectContext:](71): CoreData: Ubiquity: Error or too many ranges for entity named: Room, ranges: ( "<PFUbiquityPeerRange: 0x627e0c0> (entity: PFUbiquityPeerRange; id: 0x627c830 <x-coredata://A3F63A39-9034-4F81-8B35-911CC481B6C5/PFUbiquityPeerRange/p12> ; data: <fault>)", "<PFUbiquityPeerRange: 0x627e300> (entity: PFUbiquityPeerRange; id: 0x627cfc0 <x-coredata://A3F63A39-9034-4F81-8B35-911CC481B6C5/PFUbiquityPeerRange/p13> ; data: <fault>)", "<PFUbiquityPeerRange: 0x627e350> (entity: PFUbiquityPeerRange; id: 0x627cfd0 <x-coredata://A3F63A39-9034-4F81-8B35-911CC481B6C5/PFUbiquityPeerRange/p21> ; data: <fault>)", "<PFUbiquityPeerRange: […]

从特定部分删除核心数据对象

我有一个很奇怪的问题,但如果我能解释得好,我想答案不会那么难。 这是我目前的情况: 我有一个tableView有六个固定的部分。 这些部分填充了核心数据对象。 我正在使用一个瞬态属性来决定哪个部分的对象必须显示。 此过程在NSManagedObject子类中完成。 瞬态属性称为sectionIdentifier 。 由于使用瞬态属性来决定每个对象应该出现哪个部分,所以我决定在每个部分创build一个特殊的行,意图是每个部分总是至less有一行。 这个选项将会减less问题,使得在添加或删除行的时候,会有一个nil节会引发exception,至less在testing应用程序的时候这个问题有时候会成为问题。 这意味着在第一次发射时,每一节都有一行(我将称之为特殊行)。 然后用户可以完美地添加/删除行。 我现在的问题是,如果该部分有新的行,我需要删除这个特殊的行。 同时,如果用户删除了该部分的最后一行,应用程序将自动创build一个新的特殊行,所以该部分永远不会为空。 我知道这不是pipe理它的最好方法,但是由于我的iOS知识,这是我发现在从空白部分添加或删除行时避免exception的最佳方法。 我需要的是当用户添加至less一个新的行到部分删除从一个部分的特殊行。 该对象具有名为quitar的string属性,以及特殊的行: quitar = @"si" 。 这样,所有特殊的行很容易识别。 如果在该部分中有新行,则使用此代码删除特殊行: NSManagedObjectContext *context = self.managedObjectContext; NSEntityDescription *entity=[NSEntityDescription entityForName:@"ToDoItem" inManagedObjectContext:context]; NSFetchRequest *fetch=[[NSFetchRequest alloc] init]; [fetch setEntity:entity]; NSPredicate *predicate=[NSPredicate predicateWithFormat:@"quitar like 'si'"]; [fetch setPredicate:predicate]; NSError *fetchError; NSArray *fetchedData=[self.managedObjectContext executeFetchRequest:fetch error:&fetchError]; for (NSManagedObject *item in fetchedData){ […]

如何乘以两列,并在CoreData中求和?

我在文件中有一个货物,我想把文件中每个货物的数量和价格乘以总和。 在mySQL像这样: SELECT SUM(price * quantity) FROM documentGoods 这是我的代码,但它不起作用。 NSFetchRequest *fetch = [[NSFetchRequest alloc] init]; [fetch setEntity:[NSEntityDescription entityForName:self.tableName inManagedObjectContext:moc]]; [fetch setResultType:NSDictionaryResultType]; NSExpression *multiplyExpression = [NSExpression expressionForFunction:@"multiply:by:" arguments:@[[NSExpression expressionForKeyPath:@"quantity"], [NSExpression expressionForKeyPath:@"price"]]]; NSExpressionDescription *expressionMultipliedDescription = [[NSExpressionDescription alloc] init]; [expressionMultipliedDescription setName:@"multiplied"]; [expressionMultipliedDescription setExpression:multiplyExpression]; [expressionMultipliedDescription setExpressionResultType:NSDecimalAttributeType]; NSExpression *sumExpression = [NSExpression expressionForFunction:@"sum:" arguments:@[[NSExpression expressionForKeyPath:@"multiplied"]]]; NSExpressionDescription *expressionSummaryDescription = [[NSExpressionDescription alloc] init]; […]

在Swift中NSlogging / println SQLite数据库文件的位置

所以我想弄清楚我的swift IOS应用程序在哪里存储它的SQLite数据库文件。 我知道applicationsDocumentsDirectory存储目录。 我需要find一种方法来打印它在控制台或NSLog它。 我是新来的迅速和IOS的发展,所以我在这里遇到麻烦。 我试着只是在另一个类中调用variables,也只是在clojure中没有成功的NSLogging。 有任何想法吗? 这是variables。 lazy var applicationDocumentsDirectory: NSURL = { // The directory the application uses to store the Core Data store file. This code uses a directory named "arux-software.onsite_childcare" in the application's documents Application Support directory. let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) return urls[urls.count-1] as NSURL }()

如何使用可查询数组属性创build核心数据条目?

我有两个实体, Issue和User ,我正在使用它来表示来自服务器的数据。 在“问题”和“用户”之间存在多对多的关系,当从服务器获取问题时,对象具有一组用户ID。 后来,当我从服务器获取用户时,我希望能够find存储的具有匹配ID的问题。 我一直计划使用可转换的属性来存储每个问题的用户ID。 但是,我读过可转换的属性不可查询。 真的吗? 如果是这样,我如何创build一个可查询的数组属性?

多个UIManagedDocument用于读写

我正在为iPhone构build一个标签栏应用程序,我正在使用两个UIManagedDocument的Core Data 。 在第一个选项卡中,我将数据写入数据库,然后在第二个选项卡中使用UIFetchedResultsController它们读入UITableView 。 在应用程序开始时,如果我先写入数据,然后再读取结果,它工作正常。 结果立即显示在第二个选项卡中。 但是,如果我先读取一些数据,然后如果我写入数据库的东西,结果出现在第二个选项卡上,相当大的延迟(差不多1分钟)。 如果在两个UIManagedObjectContext或两个UIManagedDocument之间是否存在同步问题,它在第一个条件中是如何工作的? 而且,有没有解决这个延迟?