Tag: 核心数据

核心数据multithreading存储关系

我的问题很奇怪,我正在寻求帮助。 我想向你解释我的系统是如何工作的。 我有两个问题。 我正在申请有两张桌子。 我正在使用核心数据。 表是类别和产品 ,在核心数据中我已经build立了一对多的关系类别可以有多个产品 , 产品可以捧一个Categroy 。 这是基本的模式 Category { site_id name allProducts ->> Product } Product { site_id name category -> Category } 这是简单的模型产品和catwegories有更多的属性 在那个应用程序中,我有更新过程,并且该过程在后台线程中工作。 我已经创build了该线程的上下文,以及我在该上下文中存储的所有更改。 所有的调用我在后台线程中执行 [context performBlock:^{ // all my operations for updating storing categories and products }] 这是更新过程的stream程 从服务器获取JSON与类别数据 从服务器获取JSON与产品数据 从服务器获取JSON与类别具有哪些产品array((category_site_id > array(product_site_id1, product_site_id2…)) 通过类别JSON和商店类别实体,我从JSON获取名称和site_id并创build实体并设置这些属性 传递产品JSON并创build产品实体,并从JSON的属性中设置名称和store_id 然后是主要部分 现在我需要将产品连接到基于步骤3中的JSON的类别,这是一个问题。 […]

CoreData Stack适用于Swift中的iOS 9和iOS 10

我正在尝试将Core Data添加到支持iOS 9+的现有项目中。 我添加了由Xcode生成的代码: // MARK: – Core Data stack lazy var persistentContainer: NSPersistentContainer = { let container = NSPersistentContainer(name: "tempProjectForCoreData") container.loadPersistentStores(completionHandler: { (storeDescription, error) in if let error = error as NSError? { fatalError("Unresolved error \(error), \(error.userInfo)") } }) return container }() // MARK: – Core Data Saving support func saveContext () { let […]

通过NSManagedObjectSubclass上的Swift Computed属性对NSFetchedResultsController进行sorting

我正在使用Swift和Core Data构build一个应用程序。 在我的应用程序的一个点上,我想有一个UITableView显示当前在持久存储中的types的所有对象。 目前,我正在检索它们并使用NSFetchedResultsController在表格视图中显示它们。 我希望表视图按我的NSManagedObject子类的计算属性sorting,如下所示: class MHClub: NSManagedObject{ @NSManaged var name: String @NSManaged var shots: NSSet var averageDistance: Int{ get{ if shots.count > 0{ var total = 0 for shot in shots{ total += (shot as! MHShot).distance.integerValue } return total / shots.count } else{ return 0 } } } 在我的表视图控制器,我设置我fetchRequest如下: let request = NSFetchRequest(entityName: "MHClub") […]

删除核心数据对象时如何处理外部数据的清理

我对Core Data相当陌生,遇到了别人必须遇到的问题。 我的数据模型包括图像,我保留那些外部的数据库,并简单地存储path/ URL到图像。 (根据苹果核心数据演示文稿中的build议) 当删除我的图像对象,我可以手动遍历关系,并删除图像文件,但我想知道是否有一个更优雅的方式来做到这一点。 理想的解决scheme将以某种方式与图像对象绑定,并且可以与Core Data撤消/重做一起使用。

如何更新核心数据input值

[newVehicle setValue: _txtFieldVehicleNumber.text forKey:@"number"]; [newVehicle setValue: lblFuelType.text forKey:@"fueltype"]; [newVehicle setValue: lblFuelUnit.text forKey:@"fuelunit"]; [newVehicle setValue: lblDistanceUnit.text forKey:@"distanceunit"]; 我想更新我的核心数据实体名为“Vehicle”,该实体我有几个属性,我想更新其中的一些,但不是全部时,我从实体中select特定的属性。 所以我该怎么做 ??

无法保存到数据存储:操作无法完成。 (cocoa错误133020.)

我正在与非常复杂的应用程序与巨大的同步过程beetwen iPhone和Web服务器。 我没有添加logging的麻烦,直到我在分离线程中运行同步过程,它将更新serwer上的数据,并将其发送回iphone。 但是在这个过程之后,插入新的数据会导致错误,例如: 2011-01-07 12:49:10.722 App[1987:207] Failed to save to data store: The operation couldn't be completed. (Cocoa error 133020.) 2011-01-07 12:49:10.724 App[1987:207] { conflictList = ( "NSMergeConflict (0x5ac1ea0) for NSManagedObject (0x5a2d710) with objectID '0x5a27080 <x-coredata://E82E75ED-96DB-4CBF-9D15-9CC106AC0052/uzytkownicy/p10>' with oldVersion = 9 and newVersion = 21 and old object snapshot = {\n adres = \"<null>\";\n haslo […]

修改核心数据模型之后重新创build类定义的更好方法?

在XCode中devise核心数据模型时,可以自动生成NSManagedObject子类定义(.m和.h文件) select实体 从EDITOR菜单中select“创buildNSManagedObject子类” 之后,你可以在这些类中添加很多代码,如果之后由于某种原因必须修改数据模型设置呢? 为了在数据模型上反映这些变化,是否有自动的方式来做到这一点? 或者你必须手动做所有事情。 目前,如果我尝试再次(自动)从编辑菜单重新创build这些类定义,它将取代所有当前的文件。 所有添加的代码将消失。 我真的希望未来版本的Xcode可以添加一个聪明的function:自动更新默认的类定义,而不会丢失额外的工作。 也许我太懒惰了。 🙂

CoreData:错误:(14)数据库的I / O错误

在XCode编译和运行使用Core Data的项目时,我得到一个我从未见过的错误: 2013-09-12 16:59:10.156 myapp[57811:70b] CoreData: error: (14) I/O error for database at /Users/administrador/Library/ Application Support/iPhone Simulator/7.0/Applications/ 6BA67336-B093-46CF-8B11-E3595409DAC2/myapp.app/database.sqlite. SQLite error code:14, 'unable to open database file' 生成此消息的代码是: psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:self.managedObjectModel]; NSURL *storeURL = [[NSBundle mainBundle] URLForResource:@"database" withExtension:@"sqlite"]; [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:@{NSReadOnlyPersistentStoreOption : @YES} error:NULL]; 我已经尝试build设 – Build->Clean ,删除派生的数据,卸载应用程序。 我发布之前检查了这个问题 ,我相信问题是不同的。 注意: sqlite是应用程序的资源 […]

核心数据文件的位置iOS 10

我想我们SQLite浏览器看到我的核心数据对象。 我无法find核心数据保存在哪里的SQL文件。 我看着应用程序文档文件夹,但没有什么。 你知道IOS 10(模拟器)的核心数据保存在SQLite文件上吗?

核心数据/ NSOperation:通过枚举和删除对象时崩溃

我有一个核心的数据为基础的应用程序,有一个对象(列表)的对象(列表项)的关系。 我正在设备之间同步数据,并作为我从后台线程中的XML文件导入列表(通过NSOperation子类)的一部分。 当我更新一个现有的列表,我删除它的所有旧的列表项(从特定于该线程的NSManagedObjectContext),并从XML文件中取代新的列表项…删除通过枚举通过项目列表: for (ListItemCD *item in listToUpdate.listItems) { [self.importContext deleteObject:item]; } 然而,偶尔有一次,我在枚举期间崩溃了: *由于未捕获的exception“NSGenericException”而终止应用程序,原因:“* Collection <_NSFaultingMutableSet:0x4fcfcb0>在枚举时发生了变化。 我不确定从哪里开始寻找这个问题的原因。 枚举发生时,我不修改代码的任何其他部分中的列表。 可以有多个线程在同一时间,因为不同的列表导入/更新…将保存在另一个线程的上下文导致一个问题 – 因为它也通知主要上下文(如果它发生在同一时间的枚举) ? 如果有帮助,下面是我的NSOperation子类的“main”函数中的代码(我从Core Data中删除旧列表项,并通过parsingXML数据来更新列表): – (void)main { // input the xml data into GDataXML NSData *xmlData = [[NSMutableData alloc] initWithContentsOfFile:self.filePath]; NSError *error; GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:&error]; // get the list name […]