Tag: 索引

Objective-c中CoreData的自动索引

我必须为每个核心数据logging生成一个唯一的ID,有没有办法在核心数据中设置自动增量索引? 这样我们纯粹的sqlite! 如果不是的话,最好的策略是什么?

地址簿和核心数据

我试图做一个应用程序,将地址簿联系人的ID存储到一个SQLite文件使用核心数据。 我的问题是我想要随机请求这些ID,并且联系人ID是不可靠的,因为联系人ID可能存在差距,所以我想有一种索引属性,我可以做我的随机,永远不会在索引中有差距,如果我从我的数据库中删除一些ID,我想确保索引是重新索引(不知道如果索引是正确的名称,也许是一个关键)。 核心数据是否自动实现? 它是否创build了我默认创build的任何数据模型的关键? 如果是这样,我可以访问并利用它吗? 如果我删除一行会怎么样? 对不起,这可能是一个初步的问题。 另外,当地址簿更改ABAddressBookRegisterExternalChangeCallback(addressBook, addressBookChanged, *context)时更新我的​​SQLite文件最好的办法是什么? 我将不得不重写整个地址簿到我的SQLite?

iOS CoreData – 用现有索引预填充数据库

我正在build立一个项目,我需要用现有数据预先填充一个coredata数据库。 我build立了一个parsing器来创buildiOS模拟器中的sqlite文件,一切工作正常。 我正在使用一个实体,并且其中一个属性被索引。 将我的数据文件parsing为核心数据后的性能非常好,一切都很好。 现在我正在使用相同的数据模型,相同的索引等项目中生成的sqlite文件(〜200Mb)…和第一次启动时我复制数据库文件预填充数据 NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"myproject" ofType:@"sqlite"]; NSString *storePath = [[[self applicationDocumentsDirectory] path] stringByAppendingPathComponent: @"myproject.sqlite"]; NSError *error; if (![[NSFileManager defaultManager] fileExistsAtPath:storePath]) { if ([[NSFileManager defaultManager] copyItemAtPath:defaultStorePath toPath:storePath error:&error]) NSLog(@"Copied starting data to %@", storePath); else NSLog(@"Error copying default DB to %@ (%@)", storePath, error); } 复制工作正常,数据可以正常访问。 但是performance糟透了,索引显然没有被使用。 看看复制操作后的sqlite文件的大小,它从200Mb到120Mb。 在模型中一切看起来都不错,需要被索引的东西被检查为索引。 1)有没有办法索引数据不会被删除时复制SQLite? […]

NSFetchedResultsController在每个字母中有单独的部分标题的AZ索引?

我有一个NSFetchedResultsController从核心数据结构,相册列表中提取数据。 它目前是由艺术家sorting,所以所有的A,B等我想添加一个索引,以便用户可以快速跳转到每个字母,我使用下面的代码来做到这一点。 问题在于节标题现在是“A”,“B”,“C”等,这意味着我已经按照字母顺序丢失了部分标题(“Adele”,“America “,”披头士乐队“等) 我希望索引使用字母A到Z,但节标题按字母顺序显示艺术家名称。 然后在索引中推送一封信,然后跳转到第一个带有该字母的艺术家。 我怎样才能做到这一点(在索引字母字符,但部分标题不同的属性)? 编辑:如果我将我的sectionNameKeyPath设置为我的author字段,AZ索引是可见的,但字母不同步到名称,例如,如果我点击S,它需要我以艺术家开始与AL,或攻G我到AB。 我不太确定这是为什么,也许该部分索引是搞砸了? 以下是我正在使用的代码: 在我的NSManagedObject子类中: – (NSString *) firstLetter { [self willAccessValueForKey: @"firstLetter"]; NSString *firstLetter = [[[self author] substringToIndex: 1] uppercaseString]; [self didAccessValueForKey: @"firstLetter"]; return firstLetter; } 在我的视图控制器中,创buildFRC: NSFetchedResultsController *byAuthorFRC = [[NSFetchedResultsController alloc] initWithFetchRequest: _fetchRequest managedObjectContext: [[CDManager sharedManager] managedObjectContext] sectionNameKeyPath: @"firstLetter" cacheName: nil]; 这里是我的sectionIndexTitlesForTableView:方法: – (NSArray *) sectionIndexTitlesForTableView: (UITableView […]

使用核心数据时可能有复杂的索引吗?

我正在研究一个iOS闪存卡风格的学习应用程序,在加载时需要从Core Data获取一堆数据。 但是我需要的数据是一个相当特定的实体子集,基于用户设置,所以有多个谓词涉及testing等价性。 我发现这些提取超慢,基于对SQLite的研究,我认为索引将是一个很好的select。 现在,我明白(很大程度上来自阅读其他stackoverflow问题),SQLite和核心数据是两个不同的,基本上正交的东西,不应该混淆。 但是我的理解是,你应该通过Core Data来做任何types的数据库工作和调整; 在应用程序中优化或devise对象永久性时,您不应该尝试绕过并直接使用SQLite。 但是我唯一可以在Core Data中find索引的就是模型中每个属性的一个“索引”checkbox。 这只是没有做我想要的那种优化。 以下是抓取请求,目前是: NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:@"SKUserItem" inManagedObjectContext:context]; fetchRequest.entity = entity; NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"next" ascending:YES] autorelease]; fetchRequest.sortDescriptors = [NSArray arrayWithObject:sortDescriptor]; NSMutableArray *predicates = [NSMutableArray arrayWithCapacity:6]; [predicates addObject:[NSPredicate predicateWithFormat:@"next < %f", now() + (60.0*60.0*24.0)]]; [predicates addObject:[NSPredicate predicateWithFormat:@"next […]

通过索引使UITableView可滚动

我想创build一个UITableView索引更快滚动的一个大的UITableView ,我有索引显示在右边,但是当我尝试滚动它,它不工作.. 我想知道如果我错过了一些东西,所以我想知道是否还有别的东西我必须做,或者沿着这些方向。 #pragma – TableView Index Scrolling – (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView { if(searching) return nil; NSMutableArray *tempArray = [[NSMutableArray alloc] init]; [tempArray addObject:@"A"]; [tempArray addObject:@"B"]; [tempArray addObject:@"C"]; [tempArray addObject:@"D"]; [tempArray addObject:@"E"]; [tempArray addObject:@"F"]; [tempArray addObject:@"G"]; [tempArray addObject:@"H"]; [tempArray addObject:@"I"]; [tempArray addObject:@"J"]; [tempArray addObject:@"K"]; [tempArray addObject:@"L"]; [tempArray addObject:@"M"]; [tempArray addObject:@"N"]; [tempArray addObject:@"O"]; [tempArray addObject:@"P"]; [tempArray […]

自定义的UITableView节索引

是否有可能自定义UITableView的部分索引? 我的意思是,改变字体样式/大小,背景(默认是半透明的)等。我猜测答案是否定的。 那么,有没有可用于实现自定义UITableView节索引的开源解决scheme? 如果不是,我应该如何去创build这样的组件/控制/视图?