Tag: nsmanagedobject

核心数据获取NSManagedObject的修改date?

在为我的核心数据存储中的每个实体添加一个NSDate属性之外,是否有编程方法来获取任何对象的修改date?

CoreData问题: – :无法识别的select器发送到实例

我刚刚开始使用CoreData,我疯了:(我创build了一个使用CoreData的项目(勾选了框 – 使用CoreData)。创build实体,然后为所有实体创buildNSManagedObject类(我想他们创build实体的“setter”和“getter”方法)。 现在,我#我的AppDeletegate导入所有这些类,并写在我的applicationDidFinishLaunching方法: (订阅是应用程序中的实体之一) NSManagedObjectContext *context = [self managedObjectContext]; Subscriptions *sbs = (Subscriptions *)[NSEntityDescription insertNewObjectForEntityForName:@"Subscriptions" inManagedObjectContext:context]; [sbs setTitle:@"OK"]; [sbs setType:@"Tag"]; [sbs setCode:@"cars"]; NSError *error = nil; if (![context save:&error]) { NSLog(@"Couldn't create the subscription"); } 当我运行这个,我得到这个错误 [NSManagedObject setTitle:]:无法识别的select器发送到实例0x6160550 我不知道为什么会这样。 请帮忙!!! 在此先感谢大家! 添加订阅的标题 Subscriptions.h @interface订阅:NSManagedObject { } @属性(非primefaces,保留)NSString *types; @属性(非primefaces,保留)NSDecimalNumber *读; @属性(非primefaces,保留)NSString *标题; @属性(非primefaces,保留)NSString *代码; […]

如何在Swift中为NSManagedObject子类创build一个指定的初始值设定项?

class Alternative: NSManagedObject { @NSManaged var text: String @NSManaged var isCorrect: Bool @NSManaged var image: NSData } convenience init(text: String, isCorrect: Bool, entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext!) { let alternative = Alternative(entity: entity, insertIntoManagedObjectContext: context) as Alternative alternative.text = text alternative.isCorrect = isCorrect return alternative } 我想做一个方法,让我用这个调用初始化新的对象: let newAlternative = Alternative("third platform", True, entityDescription, managedObjectContext) […]

将NSManagedObject存储在字典(NSDictionary)

我有一个自定义类,它是NSManagedObject一个子NSManagedObject 。 我想将它存储在字典中,但是当试图这样做时,我收到一个Property list invalid for format: 200错误。 以下是我如何创build字典: NSDictionary *dictionary = [NSDictionary dictionaryWithObject: voiceMemo forKey:@"voiceMemo"]; 尝试时结果相同 NSDictionary *dictionary = [NSDictionary dictionaryWithObject: (NSData *) voiceMemo forKey:@"voiceMemo"]; 然而,当试图分别保存个别属性时,它是有效的: NSDictionary *dictionary = [NSDictionary dictionaryWithObject: voiceMemo.attribute forKey:@"attribute"]; NSDictionary应该能够存储数据对象,所以我猜,真正的问题是如何将NSManagedObject对象转换为NSData

CoreData无法完成错误

我有一个非常恼人的问题,我似乎无法修复。 当我发送一条消息被保存到核心数据时,我有一个视图,当它完成时,它向数据库询问一个随机消息(句子),并将其保存到数据库中的另一行。 如果我做了最后一部分硬编码,没有从数据库中获取数据,它的工作都很好,但是一旦我从数据库中获取随机行,它就会变得疯狂。 在我的AppDelegate.m中: – (void)save { NSAssert(self.context != nil, @"Not initialized"); NSError *error = nil; BOOL failed = [self.context hasChanges] && ![self.context save:&error]; NSAssert1(!failed,@"Save failed %@",[error userInfo]); } – (NSString*)selectRandomSentence { NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Sentences" inManagedObjectContext:self.managedObjectContext]; [request setEntity:entity]; NSError *error = nil; NSUInteger count = [self.context countForFetchRequest:request […]

目标c – 核心数据保存方法

我的应用程序中有一些NSManagedObject子类,我试图了解何时以及如何保存更改。 我将尝试解释我自己,例如类A是NSManagedObject子类。 在应用生命周期中,我会: App launched … Create an instance of class A … Change some properties of A instance … App go to background … App becomes active again … Change some more properties of A instance … App terminates 我什么时候需要调用[context save:]? 在A实例的每次更改之后都要调用它吗? 或者,也许我只有当应用程序去背景调用它? 我应该在创build或删除任何一个实例之后调用它吗?

无法专门化非genericstypes“设置”

这是我的NSManagedObject : @objc(Order) class Order: NSManagedObject { @NSManaged var orderItems: Set<OrderItem> //error: Cannot specialize non-generic type 'Set' } 任何人都知道为什么它不工作? OrderItem文件被创build并适用于以下声明: @NSManaged var orderItem: OrderItem

如何自动生成NSManagedObject子类与date而不是NSDatedate属性?

我目前正在更新我的项目Swift 3,我将所有的NSDate方法和扩展到date,以保持在应用程序的标准。 问题是,我使用Xcode来自动生成我的NSManagedObject子类,它生成date属性作为NSDate而不是date。 有没有一种方法来生成date属性为Date? 编辑 按照Apple开发者文档 : Core Data本身支持多种属性types,如string,date和整数(分别表示为NSString,NSDate和NSNumber的实例)。 所以我认为这是不可能的= /

核心数据inheritancevs无inheritance

我有核心数据的一些问题,所以我希望有人能够帮助我:) 第一个问题,我有一个数据模型,看起来像这样: Entity P (A) <—-> Entity R / | \ / /\ \ / / | \ \ CDEFG 我所有的实体都从同一个实体“P”inheritance,因为它们需要一个共同的属性和一个共同的关系(“A”和“R”) 我得到的问题是,当您使用inheritance时,核心数据使用只会为所有实体生成一个sqlite表。 在我的情况下,这意味着我的数据库将只有一个表的所有数据。 我做了一些研究,我发现它造成了性能问题(此外,我所有的实体属性都是瞬态的,在willSave中,它们的值被聚合到一个存储在“A”中的NSData中,所以我不能使用谓词来过滤并提高SELECT性能)。 所以我决定删除“P”,并把“A”join“C”,“D”…,“G”。 问题是与“R”,因为之前我只有一个反向关系,现在我需要创build一个每次我创build一种新的实体。 所以我想删除所有的逆关系,这是可能的吗? 有时我需要创build一个没有上下文的托pipe对象,我将它们插入到上下文中,这可能是为什么反向关系不是由核心数据自动设置的,如果在插入MOC之前设置了非反转权限? 无论如何,我从来不需要反过来,所以即使我得到一个警告,我可以避免定义它们吗? 第二个问题,在特定的情况下,我需要创build一个新的“R”,并在MOC保存期间将其分配给“C”,“D”,..,“G”。 所以我想使用willSave,但是,我不知道创build的实体是否会被保存。 如果MOC在“insertedObjects”/“updatedObjects”/“deletedObjects”上做一个简单的循环,并且对于它调用的每个对象将保存,然后调用didSave,这意味着我要修改数组它正在迭代,然后它应该崩溃没有?

为什么我的Swift类的扩展在定义文件之外不可见?

我有一个Xcode生成NSManagedObject类为我的CoreData模型。 @objc(SomeClass) class SomeClass : NSManagedObject { /* … */ } 它在名为“SomeClass.swift”的文件中定义。 我想扩展这个类,所以我创build了“SomeClassExtension.swift”。 我定义这样的扩展名: extension SomeClass { class func typeMethod1() {} func instanceMethod2() {} } 这些扩展方法可以在这个定义文件中使用,但是它们在其外面是不可见的。 是什么导致这个问题?