Tag: nsmanagedobject

用CoreData执行乘法(聚合):如何?

在Jeff Lamarche的一个奇妙的教程之后,我试图为NSManagedObject的特定子类聚合数据。 这是情况。 我创build了一个名为Product的类来扩展NSManagedObject类。 Product类有三个属性,如下所示: @property (nonatomic, retain) NSString* name; @property (nonatomic, retain) NSNumber* quantity; @property (nonatomic, retain) NSNumber* price; 我也创build了一个名为Product+Aggregate的类别,在这里我执行一个总和聚合。 特别是在Jeff教程之后,我pipe理了数量属性的总和。 +(NSNumber *)aggregateOperation:(NSString *)function onAttribute:(NSString *)attributeName withPredicate:(NSPredicate *)predicate inManagedObjectContext:(NSManagedObjectContext *)context { NSString* className = NSStringFromClass([self class]); NSExpression *ex = [NSExpression expressionForFunction:function arguments:[NSArray arrayWithObject:[NSExpression expressionForKeyPath:attributeName]]]; NSExpressionDescription *ed = [[NSExpressionDescription alloc] init]; [ed setName:@"result"]; [ed setExpression:ex]; […]

对从Swift中的Core Data收到的数组进行sorting

我有一个NSManagedObject我自己的类( BPMonitor )为我的实体 – BPMonitor : import UIKit import CoreData @objc(BPMonitor) class BPMonitor: NSManagedObject { @NSManaged var sisPress: String @NSManaged var diaPress: String @NSManaged var hbPress: String @NSManaged var datePress: NSDate } 在代码中,我从Core Data接收数据到数组: var results:[BPMonitor]=[] … … 我如何sorting我的数组字段datePress ( NSDate )降序?

'文件名被用来区分相同名称的私人声明'的错误

我得到这个错误在Swift中生成Xcode 8.1中的NSManagedObject。 :0:error:filename“DemoOne + CoreDataClass.swift”使用了两次:'/ Users / Swasidhant / Desktop / demo again / DemoOne + CoreDataClass.swift'和'/ Users / Swasidhant / Library / Developer / Xcode / DerivedData / demo_again- hiinrbwwbmyfbrbctsfdzvudkkuy / Build / Intermediates / demo again.build/Debug-iphonesimulator/demo again.build/DerivedSources/CoreDataGenerated/Model/DemoOne+CoreDataClass.swift':0:注意:文件名用于区分具有相同名称的私有声明:0 :error:filename“DemoOne + CoreDataProperties.swift”使用了两次:'/ Users / Swasidhant / Desktop / demo again / DemoOne + CoreDataProperties.swift'和'/ Users […]

NSManagedObject的自定义初始值设定项

根据文件: 你不应该重写init。 你不鼓励重写initWithEntity:insertIntoManagedObjectContext: 而应该使用awakeFromInsert或awakeFromFetch。 如果我只想设置一些属性到当前的date或者类似的地方,这是好的,但是如果我想发送另一个对象并根据它的信息设置属性呢? 例如,在一个名为'Item'的NSManagedObject子类中,我想要一个initFromOtherThing:(Thing *)的东西,其中的项目名称被设置为东西的名称。 我想避免“只是要记住”每次创build项目后立即设置名称,并且当我决定我希望Item也设置另一个基于Thing的默认属性时,必须更新15个不同的控制器类。 这些是与模型相关的行为。 我该怎么处理这个?

在Core数据iOS中设置自动增量

我正在使用核心数据,并且希望将auto_increment ID设置为唯一的字段之一。 是否可以在iOS中使用核心数据设置auto_increment? 任何人都可以帮助我一个如何实现这个小示例? 以下是我在数据库中插入logging的代码。 在第一个字段“ID”,我想把它设置为auto_increment,而不是手动插入它。 – (NSManagedObjectContext *)managedObjectContext { NSManagedObjectContext *context = nil; id delegate = [[UIApplication sharedApplication] delegate]; if ([delegate performSelector:@selector(managedObjectContext)]) { context = [delegate managedObjectContext]; } return context; } NSManagedObjectContext *context = [self managedObjectContext]; // Create a new managed object NSManagedObject *newObj = [NSEntityDescription insertNewObjectForEntityForName:@"Users" inManagedObjectContext:context]; [newObj setValue:[NSNumber numberWithInt:userId] forKey:@"id"]; [newObj setValue:theFileName […]

为什么NSManagedObject实例不能强制引用NSManagedObjectContext?

正如在另一个关于SO(和苹果文档 )的问题中指出的那样, NSManagedObject实例并没有强有力的引用它们所源自的NSManagedObjectContext 。 乍一看,这似乎是一个奇怪的决定,因为NSManagedObject实例在没有context几乎是无用的,因为它会导致错误,例如错误,当它们应该时不会触发 。 任何人都可以提供一些背景为什么是这样的情况? 实现NSManagedObject子类会自动拥有对其NSManagedObjectContext的强引用吗? 编辑:感谢伟大的答案这个问题,我发现我的托pipe对象是由RestKit有意临时NSManagedObjectContext创build的。 接下来是我的下一个问题,具体到RestKit, 在这里 。

有人可以解释这个@synthesize语法?

我正在使用最新的iOS SDK中的示例导航视图模板和核心数据。 在rootViewController.m文件中,我在@synthesize行看到这个: @synthesize fetchedResultsController=fetchedResultsController_, managedObjectContext=managedObjectContext_; 头文件是: @private NSFetchedResultsController *fetchedResultsController_; NSManagedObjectContext *managedObjectContext_; } @property (nonatomic, retain) NSManagedObjectContext *managedObjectContext; @property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController; 这是否意味着它们都是合成的(创buildgetter和setter),但是一个设置为等于另一个? 也看起来, fetchedResultsController也是rootViewController.m文件中的一个方法。 这个模板已经改变了这个SDK版本,我正在按照Apress书更多的iPhone 3的发展,这真的是困惑的事情。

在NSManagedObject子类中重复的符号错误

我只是用Core Data创build了一个演示项目。 我在我的数据模型中创build了一个实体Userinfo 。 现在我创build了这个实体的一个NSManagedObject子类。 Xcode自动生成了这4个类。 现在当我build立这个项目时,会抛出这个错误: 我已经尽我所知去除重复的错误,但没有任何帮助。 我认为它是一个Xcode错误。 请帮忙。

在核心数据中设置父子关系

我正在尝试在核心数据中build立关系。 我有一个树列表,每棵树都有一个水果列表。 所以我有一个Tree实体和一个Fruit实体。 在代码中,我将要列出树,例如在表视图中。 当你点击一棵树时,它应该显示一个在树上生长的水果列表。 我如何build立这种关系? 我需要给Fruit一个叫树的属性吗? 而我如何在代码中设置关系,例如,当我创build一个Fruit时,我如何将它与给定的Tree相关联?

我怎么知道一个`NSManagedObject`是否被删除?

我有一个NSManagedObject已被删除,并且包含该托pipe对象的上下文已被保存。 我明白,如果核心数据将要求持久性存储在下一次保存操作中删除对象,则返回YES 。 但是,由于保存已经发生, isDeleted返回NO 。 什么是一个很好的方法来告诉NSManagedObject是否已被删除,其中包含的上下文已被保存? (如果你想知道为什么引用被删除的pipe理对象的对象还没有意识到删除,那是因为删除和上下文保存是由执行删除操作并使用performSelectorOnMainThread:withObject:waitUntilDone:保存的后台线程启动的performSelectorOnMainThread:withObject:waitUntilDone: 。)