Tag: sqlite

核心数据一对多关系不存储其数据

我有一个基于表视图的应用程序,它有一个MasterTableViewController和一个DetailChildTableViewController。 MasterTableViewController在导航栏中有一个+,这样用户就可以看到在文本框中input该文件夹的名称。 一旦用户完成,完成的时钟和这个文件夹,然后存储使用核心数据,并显示在MasterTableViewController这个新的文件夹。 这是这个特定的TableViewController的代码 MasterTableViewController class MasterTableViewController: UITableViewController, NSFetchedResultsControllerDelegate { let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext var fetchedResultsController : NSFetchedResultsController = NSFetchedResultsController() // Populate fetched results controller func getFetchedResultController() -> NSFetchedResultsController { fetchedResultsController = NSFetchedResultsController(fetchRequest: taskFetchRequest(), managedObjectContext: managedObjectContext, sectionNameKeyPath: nil, cacheName: nil) return fetchedResultsController } func taskFetchRequest() -> NSFetchRequest { let fetchRequest = NSFetchRequest(entityName: "Folder") […]

iPhone iOS 2.0到iOS 4.0 SQLite兼容性

我希望我的应用与iOS 3.0和iOS 4.0兼容。 我打算使用SQLite的原因很多。 现在:我应该如何处理SQLite? 我应该只使用iOS 2.0附带的SQLite提供的function吗? 更新: 在Xcode 3.2.3中,我可以将基本SDK设置为iOS 4.0 SDKROOT = iphoneos4.0 以及iOS 2.0的部署目标 IPHONEOS_DEPLOYMENT_TARGET = 2.0 我明白,iOS 2.x不是直接支持,但这并不意味着你不能向后兼容…正如Rudiger指出的那样,开发一个向后兼容的应用程序将是一个痛苦的工作。 但是你真的认为有没有更多的iOS 2.x的iPod触摸? 无论如何,感谢您关于libsqlite3.dylib的信息,因为2009年10月升级( http://www.sqlite.org/changes.html )中引入了外键支持,所以我一直坚持使用SQLite,所以它不会在iOS 2.x和3.x设备上可用…对吗?

iOS实现理论

我们(IT部门在工作)正在build立一个iPad应用程序,它将采用数字标识并在表格中提供一个简单的查找。 它本质上是在一个表上进行主键search,并在小处理后显示一个字段。 警告 : 该表中有450万行,需要最多1秒的查找时间。 它不会有互联网连接,所以它必须发生在设备上。 我们有一些想法,但最有意义的是: Sqlite:它会站起来这样的虐待? 它可以处理多行,它会做得好吗? 平面文件search:我们可以自己循环播放文件,也可以将它们分成前几位,做一些更智能的索引。 卸载到可以通过API处理的设备上的某个第三方数据库应用程序。 完全是我们无尽的智慧,我们已经错过了。 我必须借此机会感谢苹果让这个testing非常容易。 如果没有Mac或Dev许可证,我们不希望超过2000英镑,直到我们知道我们可以把它完成。

在iOS中从sqlite数据库存储和检索图像

– (void)viewDidLoad { [super viewDidLoad]; [self createDB]; } -(void)createDB { NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *docdir = [path objectAtIndex:0]; //path[0]; dbpath = [docdir stringByAppendingPathComponent:@"arun.sqlite"]; NSLog(@"database path : %@",dbpath); NSFileManager *filemgr = [NSFileManager defaultManager]; if ([filemgr fileExistsAtPath:dbpath] == NO) { //OPEN AND CREATE DATABASE if (sqlite3_open([dbpath UTF8String], &myDB) == SQLITE_OK) { //CREATE TABLE NSString […]

FMDatabaseQueue错误:数据库被locking

我有一个在后台线程运行的方法,所以(据我了解),我需要使用FMDatabaseQueue安全,可靠地访问我的SQLite数据库。 我正在做一个查询来检查logging的存在,之后立即UPDATE或INSERT取决于结果。 第一个查询运行良好,我得到了一个计数,但后面的查询不运行。 这是我得到的错误: 未知的错误调用sqlite3_step(5:数据库被locking)欧盟 这是我的代码: //Establish database queue NSString *path = [[PPHelpers documentsPath] stringByAppendingPathComponent:@"PilotPro2.db"]; FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:path]; //Start thread-safe database queue [queue inDatabase:^(FMDatabase *dbq) { NSUInteger count; //The other parameters in this query are provided beforehand NSString *query = [NSString stringWithFormat:@"SELECT COUNT(%@) AS counter FROM %@ WHERE %@ = '%@'",columnID, model, columnID, […]

locking等待@synchronized

我有这个(罕见)奇怪的情况下,我的Objective-C iOS程序被locking。 当我进入debugging器时,有两个线程,两个都停留在@synchronized()。 除非我完全同步误解,否则我不认为这是可能的,也不是指挥的重点。 我有一个主线程和工作线程,都需要访问一个SQLite数据库,所以我包装访问数据库在@synchronized(myDatabase)块的代码块。 除了db访问以外,在这些块中没有其他的事情发生。 我也使用FMDatabase框架来访问sqlite,我不知道这是否重要。 myDatabase是一个包含FMDatabase对象的全局variables。 它在程序开始时创build一次。

如何将.sql文件添加到Xcode中的sqlite数据库

我正在写一个离线的iPhone应用程序,我需要从一个由less数几个表组成的数据库中读取和显示。 表中有超过10万个条目,所以几乎不可能单独input。 我已经下载了整个数据库的.sql文件。 现在我怎么可以将数据库导入到sqlite / Xcode,以便我可以随时开始访问数据? 编辑:我已经看到,使用数据库时,使用的文件扩展名是.db文件。 有反正我可以将.sql文件转换为.db文件。 如果我能做到这一点,我可以简单地通过将其放置在项目目录中来访问.db文件吗?

如何在Objective C中使用NSPredicate指定范围

我想通过指定一个范围来查询sqllite表。 所以就像给我所有logging的列号在3000到3010之间。 我尝试了苹果的build议,但没有奏效。 这是我尝试和失败。 NSPredicate *betweenPredicate = [NSPredicate predicateWithFormat: @"attributeName BETWEEN %@", @[@1, @10]]; 我有2个string叫做开始和结束。 我更新了苹果的例子如下。 NSPredicate *betweenPredicate = [NSPredicate predicateWithFormat: @"%@ BETWEEN %@", columnName, @[start,end]]; 当我用上面的谓词executeFetchRequest时,即使表中有匹配谓词的logging,我也会得到0条logging。 有人能指出我出错的地方吗?

SQLite或核心数据的大型数据库只有查询

基本上,我正在写一个iOS应用程序,利用一个庞大的数据库,根本不会被编辑。 在这两者之间,我正在寻找更快的查询速度。 在我的开发生命周期中,我从来没有使用任何SQLite或核心数据,所以在我潜水写任何东西之前,我想找出哪些(或者如果有其他select)对我的任务更好。 任何性能数据或build议将不胜感激。 编辑: SQLite和核心数据都不能提供我需要的性能(虽然SQLiteperformance更好)。 我决定去SQLite(与FMDB),并使用multithreading来摆脱多次查询时出现的口吃。

FMDB和encryption

我正在使用FMDB来处理sqlite,我宁愿避免依赖于SQLCipher。 我如何简单地利用iOS内置的DataProtectionfunction? 这是否可能 – 唯一的要求是在电话被盗时保护数据。 如果手机是用PIN码解锁的,那么用户可以访问数据库就可以了 – 这是他们的数据。