Tag: 核心数据

使用fetchedresultcontroller为每个月设置一个不同的部分

我试图将我的tableview分成每个月的部分。 我开始使用苹果的DateSectionTitles例子。 首先,我在核心数据库中添加了一个属性“sectionIdentifier”。 然后在我的managedobject子类中,我添加了这个方法。 – (NSString *)sectionIdentifier { // Create and cache the section identifier on demand. [self willAccessValueForKey:@"sectionIdentifier"]; NSString *tmp = [self primitiveSectionIdentifier]; [self didAccessValueForKey:@"sectionIdentifier"]; if (!tmp) { /* Sections are organized by month and year. Create the section identifier as a string representing the number (year * 1000) + month; this way they […]

NSFetchedResultsController:删除1行崩溃的应用程序

从NSFetchedResultsController提供的UITableView中删除一行会导致我的应用程序崩溃。 错误是: *断言失败 – [UITableView _endCellAnimationsWithContext:],/ SourceCache /UIKit/UIKit-2903.23/UITableView.m:1330 *终止应用程序,由于未捕获exception“NSInternalInconsistencyException”,原因:“无效的更新:在0节中的行数无效。更新(1)后,现有节中包含的行数必须等于包含在更新之前的那个部分(1),加上或者减去从该部分插入或者删除的行数(0插入,1个删除)以及加或者减去移入或移出该部分的行数(移入0,0搬出)。' 我只想轻扫即可删除。 我的删除代码是这样的: – (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { [self.tableView beginUpdates]; SequenceData *sd = [self.fetchedResultsController objectAtIndexPath:indexPath]; [self.managedObjectContext deleteObject:sd]; [self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; [self.tableView endUpdates]; } 我的NSFetchedResultsController的设置就像在Ray Wanderlich的教程中一样( http://www.raywenderlich.com/999/core-data-tutorial-for-ios-how-to-use-nsfetchedresultscontroller ) 行数取决于: – (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { id sectionObjects = [[self.fetchedResultsController sections] objectAtIndex:section]; NSInteger nbObjects = [sectionObjects numberOfObjects]; […]

核心数据:谓有序关系中的第一个元素

我有这至多包含至less一个元素的关系: Appointment <<——>> Invitee appointment.invitees是导致NSOrderedSet的有序关系 。 在由读取结果控制器控制的表视图中,列出了约会,以及被邀请者集合的第一个元素。 现在我想用被邀请者的名字来search这个列表,使用NSPredicate 。 但是如何引用谓词中有序列表的第一个元素呢? 我试过了: fetchRequest.predicate = [NSPredicate predicateWithFormat: @"invitees[FIRST].lastName CONTAINS[cd] %@", searchTerm]; 但是我得到了unimplemented SQL generation for predicate错误。 这是有道理的,因为结果是一个集合,但不是一个严格的数组。 不过,我认为sqlite商店必须build模的顺序,所以它应该是可检索的。 有什么build议?

Cydia应用程序文档文件夹未创build

我一直在研究Core Data iOS应用程序,通过苹果的“渠道” – iOS模拟器和Xcode安装完美工作,但是当我尝试手动将其安装到设备上时,应用程序崩溃。 我的主要目标是把应用程序放在Cydia上。 为Cydia准备一个应用程序的指南我阅读这篇文章,我在底部说 Appstore应用程序具有由安装过程创build的“文档”文件夹。 越狱应用程序不。 这是由应用程序创build自己的文件夹。 如果您需要这种types的文件夹,则必须在applicationDidFinishLaunching函数中使用简单的mkdir命令来创build此文件夹。 只需添加一个简单的函数:mkdir(“/ var / mobile / Library / YOURAPPNAME”,0755); 如果文件夹已经存在,没有任何伤害。 您希望这样做,因为安装过程以root用户身份运行,应用程序以用户移动方式运行。 如果Cydia为你做这个,那么这个文件夹会有不正确的权限。 我不太了解核心数据的工作原理,但是我知道核心数据“数据库”存储在“文档”文件夹中,现在我相信这是我的应用崩溃的原因。 mkdir函数在创build“文档”文件夹时不起作用。 我将如何去创build一个Documents文件夹,以及如何让它与Core Data一起工作,确保数据库从我创build的这个文件夹中加载? 提前致谢

如何更新核心数据中的现有对象?

我已经从一个.csv文件预加载数据到coredata。 我以下面的方式获取数据 var places:[Places] = [] 在viewDidLoad : if let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext { let fetchRequest = NSFetchRequest(entityName: "Places") do{ places = try managedObjectContext.executeFetchRequest(fetchRequest) as! [Places] } catch let error as NSError{ print("Failed to retrieve record: \(error.localizedDescription)") } } 在数据中有一个属性isFavorite,它的初始值为false。 我改变button点击isFavorite的价值。 我想保存用户所做的更改。 我怎样才能使这个改变持久? 这是我的button动作 @IBAction func addToFavourites(sender: AnyObject) { cell = tableView.cellForRowAtIndexPath(NSIndexPath(forRow: sender.tag, […]

iOS:自然sorting顺序

我有一个使用Core Data来保存和检索数据的iOS应用程序。 我如何获取按自然sorting顺序sorting的NSStringtypes的字段的数据? 现在结果是: 100_title 10_title 1_title 我需要: 1_title 10_title 100_title

如果应用程序在10秒内死亡,NSUserDefaults丢失新保存的数据

我正在寻找比NSUserDefaults更快的方式来保存用户的喜好。 我发现如果应用程序在写入NSUserDefaults大约10秒钟内死亡,它将不会永久保存。 我使用默认值保存自定义铃声的path,自定义图像的path,地图坐标,基本上只是用户定义的偏好。 使用核心数据更好的select? SQLite的? 什么被接受为最快和最轻量级?

CoreData谓词:string属性的长度?

说如果我有一个实体Fragment ,它有一个属性“文本”,这是一个string,我想查询其text长度为5的Fragment的列表: [NSPredicate predicateWithFormat:@"position == %@ AND text.length == %d", pos, 5]; 它不起作用(即没有返回结果),但如果我删除查询中的text.length它的工作,我敢肯定有长度为5的文本,所以我需要改变它? 谢谢!

XCode不能编辑CoreData模型

在使用CoreData Model添加到我现有的项目之后 File > New > File… > Core Data > Data Model 我无法编辑模型。 该项目现在包含一个.xcdatamodeld软件包引用,但在Project Navigator中单击它与点击文件夹或组的效果相同,则当前编辑器不会更改。 同样右击参考并select“打开为”,列出没有潜在的编辑器。 此外,打开文件检查器面板只列出了“身份”“目标成员”和“文本设置”的设置,但未列出“核心数据模型”或“版本化核心数据模型” 不是说这对XCodes识别文件types的能力有任何影响,但是我也在构build阶段引用了CoreData.framework,并在AppDelegate中包含了必要的Core Data属性。 奇怪的是我已经打开Finder中的.xcdatamodeld包来暴露内部的.xcdatamodel(注意没有尾随“d”)。 双击该文件将按预期打开带有核心数据模型编辑器的XCode。 更奇怪的是,我创build了一个新的投影并点击了“使用核心数据”checkbox。 这样做使我可以通过在Project Navigator中select.xcdatamodeld引用来编辑数据模型。 因此,我的机器和XCode能够并configuration为编辑CoreData文件。 就好像XCode无法使用核心数据,除非原始项目是使用“使用核心数据”checkbox创build的。 有没有人遇到过这个问题,你能解决这个问题吗? 谢谢!

在xcode 5中使用sqlite浏览器查看coredata

由于升级到XCode 5,我无法查看我的应用程序文件夹中的sqlite文件中的数据。 文件夹结构有所改变,但我仍然可以find正确的应用程序,但是当我用sqlite浏览器打开sqlite文件,似乎没有在CoreData中的任何数据。 有任何想法吗?