iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 打开sqlite数据库大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试图从sqlite数据库中读取数据并将其显示在ios应用程序的表视图中.但由于某种原因,我无法打开sqlite数据库,应用程序崩溃了 – 无法打开数据库. 我使用Firefox sqlite管理器创建了数据库,并将文件复制到Xcode项目中. 这是我的代码 – -(NSString *)DATAFILEPath{ NSArray *paths = NSSearchPathForDirec
我试图从sqlite数据库中读取数据并将其显示在ios应用程序的表视图中.但由于某种原因,我无法打开sqlite数据库,应用程序崩溃了 – 无法打开数据库.

我使用Firefox sqlite管理器创建了数据库,并将文件复制到Xcode项目中.

这是我的代码

-(NSString *)DATAFILEPath{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
    NSString *documentsDir = [paths objectATindex:0];
    return [documentsDir StringByAppendingPathComponent:kFilename];
}

我正在尝试使用viewDidLoad中的sqlite3_open_v2命令打开数据库

sqlite3 *database;

    if (sqlite3_open_v2([[self DATAFILEPath] UTF8String],&database,sqlITE_OPEN_READWRITE,NULL) != sqlITE_OK) {
        sqlite3_close(databasE); // not sure you need to close if the open Failed
        NSAssert(0,@"Failed to open database");
    }

解决方法

这是我打开数据库的方式.我已经很长时间没有做sqlite了,除了提供我在自己的应用程序中使用的代码之外,我无法给你太多帮助.这是我在我的应用程序中使用的类.

static sqlite3 *database;
static sqlite3_stmt *enableForeignKey;

@implementation DBAdapter

+ (sqlite3 *)sharedInstance {

    if (database == NULL) {
        sqlite3 *newDBconnection;

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,YES);
        NSString *documentsDirectory = [paths objectATindex:0];
        NSString *path = [documentsDirectory StringByAppendingPathComponent:@"klb_db.sqlite"];

        if (sqlite3_open([path UTF8String],&newDBconnection) == sqlITE_OK) {   
            //NSLog(@"Database successfully Opened :)");
            database = newDBconnection;

            if (sqlite3_prepare_v2(database,"PRAGMA foreign_keys = ON",-1,&enableForeignKey,NULL) != sqlITE_OK) {
                NSLog(@"ERROR IN PRAGMA!");
            }

            sqlite3_finalize(enableForeignKey);

        } else {
            NSLog(@"Error in opening database :(");
            database = NULL;
        }
    }

    return database;
}

大佬总结

以上是大佬教程为你收集整理的ios – 打开sqlite数据库全部内容,希望文章能够帮你解决ios – 打开sqlite数据库所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。