Файл делегата приложения похож на глобальный файл, вы просто импортируете свой Пользовательский файл заголовка созданной базы данных в делегат приложения и создаете объект Пользовательский файл заголовка созданной базы данных , предполагая,имя файла dbOperations.h
в делегате приложения
импортируйте его и создайте его объект, затем выполните свойство, синтезируйте и все.
в любом контроллере представления вам просто нужно импортировать ваш файл "appDelegate.h" и сделать так, чтобы его объект загружался как
objAppdelegate = [[UIApplication sharedApplication] делегат];
и выможет получить доступ ко всем вашим методам и членам файла dbOperations.h по
objAppdelegate.objdbOperations .
все, что вы поместите в appdelegate, останется общим и общим для всего приложения, всех viewControllers и всех классов.
ваш метод createDatabase должен быть таким и вызывать этот метод, когда ваше приложение завершит загрузкуметод файла appDelegate.
-(void)checkAndCreateDatabase
{
appDelegate = (SexarobicsAppDelegate *)[[UIApplication sharedApplication]delegate];
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir =[documentPaths objectAtIndex:0];
NSString *databasePath = [documentsDir stringByAppendingPathComponent:@"database.sqlite"];
//NSLog(@"%@", databasePath);
NSFileManager *fileManager = [NSFileManager defaultManager];
if(![fileManager fileExistsAtPath:databasePath])
{
NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"database.sqlite"];
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];
}
//Open DB Connection
if(sqlite3_open([databasePath UTF8String], &database) != SQLITE_OK)
sqlite3_close(database);
return;
}
и запуск SQL-запроса подобным образом, в приведенном выше коде @ "database.sqlite" - это имя вашего файла базы данных.
-(void)getData
{
selectStmt = nil;
// fire query and perform those related operations
// Release the compiled statement from memory
sqlite3_finalize(selectStmt);
selectStmt = nil;
}