Tag: core data

在Swift中设置一个NSManagedObject关系

在Swift的NSManagedObject子类中,如何将对象添加到关系属性中? 在Objective-C中,当从数据模型生成Xcode中的NSManagedObject子类时,会自动生成类扩展,其中包含如下声明: @interface MyManagedObject (CoreDataGeneratedAccessors) – (void)addMySubObject: (MyRelationshipObject *)value; – (void)addMySubObjects: (NSSet *)values; @end 但是,Xcode目前缺lessSwift类的这个类生成能力。 如果我尝试直接在Swift对象上调用等价的方法: myObject.addSubObject(subObject) …我在方法调用中遇到编译器错误,因为这些生成的访问器不可见。 我已经将关系属性声明为@NSManaged ,如文档中所述。 还是必须恢复到具有关系的数据模型的Objective-C对象?

将NSSet转换为Swift数组

在CoreData中,我定义了一个无序的多对多关系。 这种关系在Swift中是这样定义的: @NSManaged var types : NSMutableSet 但是,最好使用Swift,我想使用一个普通的Swift数组,如Type[] 。 但是,CoreData迫使我使用NS(Mutable)Set 。 我如何可以将NSSet Array<Type>[]转换/转换为Array<Type>[] ?

在应用程序委托中添加持久性存储(启用iCloud)时发生崩溃

我将开始更新,以帮助那些寻求使用这个作为他们自己的个人代码的参考。 最新的更新 我相当肯定,我find了一种方法,一旦他们停止了对方的谈话,重新同步设备。 我将在下面更新我的答案和所有的细节。 我希望大家都觉得这很有帮助。 经过近两个月的摸索才能确定这一点。 所以请参考和分享与其他人有类似的问题,让设备再次通过iCloud相互交谈。 我花了很长的时间才弄明白这一切,所以我非常乐意尽可能地让更多的开发者从创build自己的make-shift修复程序中解脱出来。 另外帮助正确设置 我发现在更新应用程序后,与该帐户关联的iCloud数据可能会导致崩溃,因为iCloud数据将尝试立即合并到设备中(设备尚未设置其持久性存储)。 我现在增加了@property (nonatomic, readwrite) BOOL unlocked; 到AppDelegate.h和@synthesize unlocked; 到AppDelegate.m 。 然后,我更改了我的- (NSPersistentStoreCoordinator *)persistentStoreCoordinator方法以及我的- (void)mergeChangesFrom_iCloud方法,这两个方法将在下面显示(中间为持久性存储设置,下方为iCloud合并方法)。 本质上,我告诉应用程序,以防止iCloud合并数据,直到应用程序build立其持久存储。 否则,您会看到由于无法读取的故障导致的应用程序崩溃。 以下是我如何设置我的persistentStoreCoordinator: – (NSPersistentStoreCoordinator *)persistentStoreCoordinator { if (__persistentStoreCoordinator != nil) { return __persistentStoreCoordinator; } // here is where you declare the persistent store is not prepared; self.unlocked = NO; NSURL *storeURL […]

如何将数组保存到CoreData?

我需要将我的数组保存到核心数据。 let array = [8, 17.7, 18, 21, 0, 0, 34] 该数组内的值和值的数量是可变的。 1.我在NSManagedObject类中声明了什么? class PBOStatistics: NSManagedObject, Equatable { @NSManaged var date: NSDate @NSManaged var average: NSNumber @NSManaged var historicAverage: NSNumber @NSManaged var total: NSNumber @NSManaged var historicTotal: NSNumber @NSManaged var ordersCount: NSNumber @NSManaged var historicOrdersCount: NSNumber @NSManaged var values: [Double] //is it ok? @NSManaged var […]

有没有办法实例化NSManagedObject而不插入它?

我有一个用户界面来插入一个事务。 一旦用户点击一个加号,他得到的屏幕,我想实例化我的核心数据NSManagedObject实体,让用户在它上面工作。 然后当用户点击保存button,我将调用保存function。 所以下来代码: transaction = (Transaction *)[NSEntityDescription insertNewObjectForEntityForName:@"Transaction" inManagedObjectContext:self.managedObjectContext]; //even if i dont call save: its going to show up on my table [self.managedObjectContext save:&error] PS我在该表上使用NSFetchedResultsController,我看到NSFetchedResultsController插入一个节和一个对象的表。 我的想法是,如果有一种方法来实例化事务NSManagedObject我可以更新与保存,直到客户端select。

轻量级迁移NSPersistentDocument

我正在尝试在Core Data中进行SQLite存储的轻量级迁移。 在Xcode 4.3.1上使用Lion 10.7.3。 在我的NSPersistentDocument子类(AccountDocument)中,我重写了用于configuration持久性存储协调器的方法,以便获得适当的迁移选项: – (BOOL)configurePersistentStoreCoordinatorForURL:(NSURL *)url ofType:(NSString *)fileType modelConfiguration:(NSString *)configuration storeOptions:(NSDictionary *)storeOptions error:(NSError **)error { NSMutableDictionary *newStoreOptions; if (storeOptions == nil) { newStoreOptions = [NSMutableDictionary dictionary]; } else { newStoreOptions = [storeOptions mutableCopy]; } [newStoreOptions setObject:[NSNumber numberWithBool:YES] forKey:NSMigratePersistentStoresAutomaticallyOption]; [newStoreOptions setObject:[NSNumber numberWithBool:YES] forKey:NSInferMappingModelAutomaticallyOption]; BOOL result = [super configurePersistentStoreCoordinatorForURL:url ofType:fileType modelConfiguration:configuration storeOptions:newStoreOptions error:error]; return […]

核心数据,当NSFetchRequest返回NSDictionaryResultType时如何获取NSManagedObject的ObjectId?

我有一个NSFetchRequest返回NSDictionaryResultType的对象的属性。 是否有可能在这个字典中获得对象的ObjectId? 否则,我将需要使用NSManagedObjectResultType的返回types来运行查询,这对于大量返回的项目来说要慢得多。

执行caching时,NSFetchedResultsController崩溃:使用caching时

我使用NSFetchedResultsController来显示一堆对象,这些对象使用date进行分区。 在全新的安装中,这一切都完美地工作,对象显示在表视图中。 但是,似乎应用程序重新启动时,我得到一个崩溃。 我在初始化NSFetchedResultsController的时候指定了一个caching,当我没有完美的工作的时候。 这里是我如何创build我的NSFetchedResultsController: – (NSFetchedResultsController *)results { // If we are not nil, stop here if (results != nil) return results; // Create the fetch request, entity and sort descriptors NSFetchRequest *fetch = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedObjectContext]; NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"utc_start" ascending:YES]; NSArray *descriptors = [[NSArray […]

如何复制或复制核心数据pipe理对象?

我有一个托pipe对象(“A”),其中包含各种属性和types的关系,其关系也有自己的属性和关系。 我想要做的是“复制”或“复制”以对象“A”为根的整个对象graphics,从而创build一个非常类似于“A”的新对象“B”。 更具体地说,“B”(或其子女)所包含的关系中没有一个指向与“A”有关的对象。 应该有一个完全相同的关系完整的新对象图,并具有相同的属性,但当然不同的ID的所有对象。 有一个明显的手动方法来做到这一点,但我希望能够从Core Data文档中学到更简单的方法。 TIA!

XCode 8为iOS 10生成破坏的NSManagedObject子类

我最近更新了我的iOS应用程序项目到iOS 10.现在我试图改变我的应用程序的核心数据模型,但Xcode生成的新的NSManagedObject子类被打破。 我也试图修复子类手册,但这是行不通的。 核心数据模型的最低工具版本设置为Xcode 7.0,代码生成语言设置为Swift。 这是Xcode生成的代码: import Foundation import CoreData import extension Group { @nonobjc public class func fetchRequest() -> NSFetchRequest { return NSFetchRequest(entityName: "Group"); } @NSManaged public var name: String? @NSManaged public var platform: NSNumber? @NSManaged public var profiles: NSOrderedSet? } // MARK: Generated accessors for profiles extension Group { @objc(insertObject:inProfilesAtIndex:) @NSManaged public func […]