· 8 years ago · Aug 13, 2018, 09:02 PM
1My ios sqlite3 database is not being created
2#import "SQLController.h"
3
4@implementation SQLController
5@synthesize database;
6
7-(id)initWithDefaultDB {
8 return [self initWithDBPath:[self dbFilePath]];
9}
10
11-(id)initWithDBPath:(NSString *)dbPath {
12 self = [super init];
13 if(self) {
14 sqlite3 *db;
15 const char *dbPathCString = [dbPath UTF8String];
16 int result = sqlite3_open(dbPath, &db);
17 if (result != SQLITE_OK) {
18 NSString *errorTag = @"Failed to open database at ";
19 NSString *errorMessage = [errorTag stringByAppendingString:dbPath];
20 NSLog(errorMessage);
21 sqlite3_close(db);
22 } else {
23 const char *createQuery = "CREATE TABLE IF NOT EXISTS items (title TEXT, details TEXT, category TEXT);";
24 self.database = db;
25 char *error;
26 if (sqlite3_exec(self.database, createQuery, NULL, NULL, &error) != SQLITE_OK) {
27 sqlite3_close(self.database);
28 NSLog(@"Failed to create table");
29 NSAssert(0,@"Error creating table: %s", error);
30 }
31 }
32 }
33 return self;
34}
35
36-(NSString *)dbFilePath {
37 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
38 NSString *documentsDirectory = [paths objectAtIndex:0];
39 return [documentsDirectory stringByAppendingPathComponent:@"testdb.sqlite"];
40}
41
42
43@end
44
45-(id)initWithDBPath:(NSString *)dbPath {
46self = [super init];
47if(self) {
48 sqlite3 *db;
49 const char *dbPathCString = [dbPath UTF8String];
50 int result = sqlite3_open(dbPath, &db);