Tag: 核心数据

如何用核心数据实现表格部分

我在我的iOS应用程序中使用核心数据。 我有一个表格来显示来自实体的数据,称为个人。 实体人有几个属性,他们是“date”。 我想在表格视图中创build5个永久部分(0.Today,1.Tomorrow,2.This week,3.This month,4.Upcoming),然后我希望数据显示在每个部分取决于date。 我一直在寻找这个问题,但没有发现可以应用到我的应用程序。 我恳请您告诉我正确的处理方法。 这是我的代码到目前为止: #import "PersonsTVC.h" #import "Person.h" @implementation PersonsTVC @synthesize fetchedResultsController = __fetchedResultsController; @synthesize managedObjectContext = __managedObjectContext; @synthesize selectedPerson; @synthesize searchResults,titulosseccion; – (void)setupFetchedResultsController { // 1 – Decide what Entity you want NSString *entityName = @"Person"; // Put your entity name here NSLog(@"Setting up a Fetched Results Controller for […]

如何从swift中删除核心数据中的对象3

这是我如何将数据保存到核心,现在我想从整个数据中删除特定的对象。 我怎样才能做到这一点? 这是我如何保存数据: func saveProductDetails(product : Product) { // set user_id product.user_id = UserDefaults.sharedInstace.getCustomerId() //save data locally for the time been let entity = NSEntityDescription.entityForName("Product", inManagedObjectContext: self.writeContext) let category = NSEntityDescription.entityForName("Category", inManagedObjectContext: self.writeContext) let brand = NSEntityDescription.entityForName("Brand", inManagedObjectContext: self.writeContext) var entityProduct = NSManagedObject(entity: entity!, insertIntoManagedObjectContext:self.writeContext) var entityCategory = NSManagedObject(entity: category!, insertIntoManagedObjectContext:self.writeContext) var entityBrand = NSManagedObject(entity: […]

用于保存核心数据的NSPersistentContainer并发性

我已经阅读了一些关于这个的博客,但是我仍然对如何使用NSPersistentContainer performBackgroundTask创build实体并保存它感到困惑。 通过在performBackgroundTask() { (moc) in }块中调用便利方法init(context moc: NSManagedObjectContext)创build一个实例后,如果我检查container.viewContext.hasChanges这将返回false,并说没有什么可以保存,如果我调用保存moc (为这个块创build的背景MOC)我得到像这样的错误: fatal error: Failure to save context: Error Domain=NSCocoaErrorDomain Code=133020 "Could not merge changes." UserInfo={conflictList=( "NSMergeConflict (0x17466c500) for NSManagedObject (0x1702cd3c0) with objectID '0xd000000000100000 <x-coredata://3EE6E11B-1901-47B5-9931-3C95D6513974/Currency/p4>' with oldVersion = 1 and newVersion = 2 and old cached row = {id = 2; … }fatal error: Failure to save […]

在iOS中将业务对象与核心数据映射

我是iOS新手。 任何人都可以告诉我如何映射我的核心数据的BO,以便我可以在我的项目中重用映射。 这是我的代码 – (void) saveData { CoredataAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; NSManagedObjectContext *context = [appDelegate managedObjectContext]; NSManagedObject *newContact; newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:context]; [newContact setValue:firstName.text forKey:@"firstName"]; [newContact setValue:lastName.text forKey:@"lastName"]; [newContact setValue:driverLicenceno.text forKey:@"driverLicenceNumber"]; [newContact setValue:state.text forKey:@"state"]; [newContact setValue:phoneNO.text forKey:@"phoneNumber"]; [newContact setValue:injuryStatus.text forKey:@"injuryStatus"]; [newContact setValue:emailAddress.text forKey:@"emailAddress"]; NSLog(@"fName%@",firstName.text); firstName.text = @""; NSLog(@"fName%@",firstName.text); lastName.text = @""; driverLicenceno.text […]

优先使用属性访问器或KVC样式来访问Core Data属性

我已经阅读了Marcus S. Zarra的iOS数据存储和pipe理iOS OS X和iCloud (第二版)的iOS相关章节,以获得巨大收益。 但是,我想知道一个方面,这本书提出了一个与我自己不同的风格。 本书的示例通过使用KVC访问NSManagedObject的属性和关系(例如[recipe valueForKey: @"name"] )。 对于如何定义属性访问器(例如在recipe.name使用),有(仅)两个简单的解释。 这似乎暗示了KVC有利于财产访问者的明确build议。 我一般喜欢属性访问器,例如,因为他们防范错误导致的错误(例如[recipe valueForKey: @"nam"] ),因为Xcode可以为我生成它们的源代码( Editor | Create NSManagedObject Subclass )。 我的问题是这样的:有什么技术上的原因,为什么一个人应该使用KVC,而不是一般的财产访问或风格?

NSManagedObject setter给我:无法识别的select器发送到实例

我已经通过xcode编辑器菜单创build了一个NSManagedObject。 我的对象只有一个属性“名称”。 当我尝试设置属性时,我得到“[MyObject setName:]:无法识别的select器发送到实例” MyObject *thing = [MyObject objectFromJSONDictionary:obj]; thing.name = obj; <– ERROR HERE 我已经检查过,我的财产“名称”在CD中与我的class级相同。 另外我的界面属性是一样的。 而我的dynamic属性是一样的。 @property (nonatomic, retain) NSString * name; @dynamic name; 有什么build议么? 是的,我已经擦除了CD对象,清理了我的项目,并再次在CD中创build它。 同样的问题?

数据未保存到核心数据

我正在使用专门为iOS 7编译的Xcode 5。 我正在从UTF8 txt文件读取数据以填充核心数据实体。 读完数据后,我将它logging到控制台。 数据在那里。 我填充实体并将实体logging到控制台。 我保存它。 没有错误。 没有崩溃。 我在设备上看到3个文件: MyDatabase.sqlite MyDatabase.sqlite-SHM MyDatabase.sqlite,沃尔玛 当应用程序启动并创buildMyDatabase.sqlite时,它有40 kb。 在这一点上, shm文件是32kb, wal文件是零。 将数据写入数据库之后, wal文件增长到1,7 Mb,而其他两个文件保持其初始大小,换句话说,数据不会被保存到数据库。 我已经证实,通过检查与外部数据库查看器的sqlite文件。 这是我正在使用的代码: // NSArray *arrayOfYears = … // this contains an array of numbers read from the CSV file // at this point the array contains numbers in text format // NSArray […]

使用聚合操作崩溃:Core Data iOS应用程序中的“ALL”

我正在一个iPhone应用程序,我有一个简单的多对多关系设置组和联系对象。 一个组可以有很多联系人,联系人可以属于多个组。 我尝试使用以下谓词select特定联系人不属于的所有组。 (注意:uid字段是我用来唯一标识联系人实体的string字段) [NSPredicate predicateWithFormat:@"ALL contacts.uid != %@", contactUId] 根据苹果的谓词编程指南,ALL聚合操作是有效的,但我得到以下exception,指出这是一个不受支持的谓词: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported predicate (null)' 我可以使用一个类似的谓词来使用这个谓词来select一个联系人已经属于的所有组,所以看起来我具有正确定义的所有关系和字段。 [NSPredicate predicateWithFormat:@"ANY contacts.uid == %@", contactUId] 构造谓词时抛出exception,而不是当我试图实际执行获取请求,所以它似乎与我正在使用的语法而不是核心数据支持相关。 我究竟做错了什么?

executeFetchRequest抛出致命错误:NSArray元素无法匹配Swift数组元素types

我正在用CoreDatatestingswift,并创build了以下代码: import UIKit import CoreData class Contact: NSManagedObject { @NSManaged var name: String @NSManaged var email: String class func execute(){ let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate) let context:NSManagedObjectContext = appDel.managedObjectContext! let entityDescripition = NSEntityDescription.entityForName("Contact", inManagedObjectContext: context) let contact = Contact(entity: entityDescripition!, insertIntoManagedObjectContext: context) contact.name = "john Apleesee" contact.email = "john@apple.com" context.save(nil) let fetch:NSFetchRequest = NSFetchRequest(entityName: […]

在实体中提取选定的属性

我有一个具有多个属性的核心数据实体,我想要一个属性中的所有对象的列表。 我的代码如下所示: let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate let context:NSManagedObjectContext = appDel.managedObjectContext! let sortDesc = NSSortDescriptor(key: "username", ascending: true) let fetchReq = NSFetchRequest(entityName: "Identities") fetchReq.sortDescriptors = [sortDesc] fetchReq.valueForKey("username") let en = NSEntityDescription.entityForName("Identities", inManagedObjectContext: context) userList = context.executeFetchRequest(fetchReq, error: nil) as [Usernames] 但是这给了我一个NSException-错误,我不知道为什么,或者我该怎么做。 我读过NSFetchRequest类的描述,但没有多less意义。 任何build议,将不胜感激。 编辑:从Bluehound提示后,我改变了我的代码: var userList = [Model]() @IBAction func printUsers(sender: AnyObject) { let […]