Tag: 核心数据

删除Core Data中的第一个对象(Swift)

我正在请求Core Data根据contentid以升序将实体条目返回给我: let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext! let sort = NSSortDescriptor(key:"contentid", ascending:true) fetchRequest.sortDescriptors = [sort] let fetchedResults = managedObjectContent.executeFetchRequest(fetchRequest, error: &error) as! [NSManagedObject] 如何删除Core Data返回的升序条目中的第一个对象? 我也尝试通过指定获取单个对象: fetchRequest.fetchLimit = 1 认为这将返回一个[NSManagedObject],我试图然后执行: managedObjectContext.deleteObject(fetchedResults) 但它抛出的错误不能调用types为'([NSManagedObject])'的方法deleteObject'。 我究竟做错了什么? 我是否需要将[NSManagedObject]转换为NSManagedObject?

逐个保存NSUndoManager事务

我不仅需要将更改保存在Core Data ,还需要保存在服务器上。 我担心的是,在我的情况下,用户可以在很短的时间内做一堆交互。 在交互之间没有足够的时间来接收从服务器返回的成功消息。 因此,要么lockingGUI,直到下一个消息返回 – 现在就是这种情况 – 或者select一种不同的方法。 我的新方法是让用户做很多交互,并将事务放到NSUndoManager提供的undo stack ,在NSManagedObjectContext启用, 但是只保存/提交接收到成功消息的事务 。 如何一次移动一个撤消“游标”,逐个提交logging,尽pipe上下文中已经包含了未经保存的更改?

Coredata:将谓词和比较中的NSString列转换为NSDate

嗨,我正在开发一个IOS应用程序。 其中date以string列types存储在核心数据实体中。 现在我想根据date得到一些过滤的logging。 但问题是date被保存为string而不是NSDate对象在coredata中。 我的问题是,有没有办法在Nsdate中转换string,并将其与NSDate对象进行比较,并获得更大和更小的date。 我想要的东西就像在MYSQL查询中,您可以使用MySQL的“DATE()”函数,并将string转换为date,并与任何date进行比较。

麻烦与ViewControllers之间的segue

这是我的代码: import UIKit import CoreData class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() var logo = UIImage(named: "no_pain_no_gain-_.jpg") logoImage.image = logo viewExercisesButton.frame = CGRectMake(-30,250,125,125) viewExercisesButton.addTarget(self, action: "viewExercisesButtonTouch:", forControlEvents: UIControlEvents.TouchDown) viewExercisesButton.setImage(imageViewExercises, forState: .Normal) viewExercisesButton.imageEdgeInsets = UIEdgeInsetsMake(30,30,30,30) self.view.addSubview(viewExercisesButton) } var moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext var fetchedResultsController: NSFetchedResultsController? var daysArray1 = [TrainingDay]() @IBOutlet var logoImage: UIImageView! […]

什么是导致这个核心数据输出的差异?

我有一个NSFetchedResultsController,我第一次运行我的应用程序时返回0节,但是当我closures并重新加载应用程序后,正确的节数很难。 我注意到,如果我NSLog数组[[self.fetchedResultsController fetchedObjects]描述],我得到一个稍微不同的结果之间的第一次和以后,我希望这将帮助我找出整体问题。 第一次运行: "<Contact: 0x1fc7a000> (entity: Contact; id: 0x1fc79cb0 <x-coredata:///Contact/tC060241D-2C37-4F78-AA69-5FBE3CB9DDFB364> ; data: {\n email = nil;\n emails = (\n );\n name = \"AIB Dundrum\";\n nameInitial = A;\n parseID = nil;\n phoneNumber = 012983777;\n signedUp = 0;\n})" 第二次运行: "<Contact: 0x1e35f3f0> (entity: Contact; id: 0x1e2ab020 <x-coredata://FD1A50BA-9A08-452D-B4B4-2072FA1B190C/Contact/p337> ; data: <fault>)" 任何人都可以向我解释这些输出之间的差异,为什么第二次运行应用程序时数据出现故障,我怎样才能在第一次做这些事情呢? 谢谢

部分保存managedObjectContext

我有3个事务已经在NSManagedObjectContext : A , B , C 。 他们按相同的顺序执行/添加到上下文中。 我怎样才能保存第一个A事务,但保持未保存的B , C上下文。 insert A , insert B , insert C , commit A ,.. 不幸的是NSManagedObjectContext不能commit A ,而是保存所有的事务。

为实体插入新的对象的CoreData给我错误时使用setValue:forKey:与一个int

这里是代码: ComicDB * newComic = (ComicDB *)[NSEntityDescription insertNewObjectForEntityForName:@"ComicDB" inManagedObjectContext:context]; [newComic setValue:comic.iComicId forKey:@"ComicID"]; [newComic setValue:comic.sImage forKey:@"Image"]; [newComic setValue:comic.sName forKey:@"Name"]; [newComic setValue:comic.sText forKey:@"Text"]; [newComic setValue:comic.sComicURL forKey:@"URL"]; 这是我在setValue:comic.iComicId forKey@"ComicID"上得到的警告。 仅供参考 – 漫画是我自己的类,具有喜剧的细节。 警告:传递'setValue:forKey:'的参数1使得整型指针没有强制转换 当我将代码行更改为: [newComic setValue:[comic.iComicId intValue] forKey:@"ComicID"]; 我得到这些警告和错误:警告:无效的接收器types'INT'警告:通过参数1的'setValue:forKey:'使整数指针没有一个强制转换 我究竟做错了什么?

如何在iOS中从详细视图访问主表的视图

我的应用程序的一部分有一个embedded式的主 – 细节部分。 每个细节视图都使用一个自定义的UIViewController 。 当我改变这些UIViewControllers里面的某个东西的值的时候,我需要能够在主UITableViewController变成一个表格行。 我看到的最接近的解决scheme是使用NSNotificationCenter来冒泡任何变化,虽然这感觉有点不整洁。 另一个解决scheme是使用代表? 但我还没有遇到任何示例解决scheme或教程如何在Swift使用它? 我也尝试通过导航备份层次来访问表视图: let navController = self.splitViewController!.viewControllers[0]; navController.tableView.reloadData() 我知道上面的例子是错误的,但我不知道如何以这种方式访问​​主视图,或者即使是正确的方法。 噢,我正在尝试调用reloadData()因为在主视图中有一些逻辑检查条件,以便灰色表格行适用(我正在使用Core Data )

核心数据保存崩溃

我有一个UITableView使用FetchedResultsController从CoreData中提取数据,并注册数据更新。 在第二个线程中,我从服务器下载数据并更新相同的数据( UITableView使用的数据)。 更新并不复杂,只是更新实体的BOOL字段。 当我调用对象上下文的保存,我得到这个exception: NSInternalInconsistencyException ,原因是 "Failed to process pending changes before save. The context is still dirty after 100 attempts. …" 如果我没有保存更新后的权利,但只有在应用程序即将终止时,应用程序运行良好, UITableView被正确更新和数据持久。 任何指针为什么可能会发生? 难道我做错了什么?

具有PersistentStore的iOS应用程序coreData作为静态sqlite数据迁移?

该应用程序正在使用捆绑目录中的静态sqlite(初始数据)作为Coredata的持久性存储。 sqlite有7个表,其中一个表是通过添加额外的列/字段来修改的。 我如何让coreData了解持久性存储(store)已更改,并且需要进行新的更新? 有没有像我们为coredata做任何模型版本的概念?