В настоящее время я включаю мою базу данных sqlite в свое приложение, и я продолжаю задаваться вопросом, когда самое лучшее время в жизненном цикле приложения для создания таблиц (или убедитесь, что они существуют).IOS/SQLLite: Где/Где лучшее время для создания базы данных
В большинстве примеров, которые я читал, автор делает что-то вроде этого:
- (void)viewDidLoad
{
NSString *docsDir;
NSArray *dirPaths;
// Get the documents directory
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
// Build the path to the database file
databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"contacts.db"]];
NSFileManager *filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath: databasePath ] == NO)
{
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
char *errMsg;
const char *sql_stmt = "CREATE TABLE IF NOT EXISTS CONTACTS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, ADDRESS TEXT, PHONE TEXT)";
if (sqlite3_exec(contactDB, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK)
{
status.text = @"Failed to create table";
}
sqlite3_close(contactDB);
} else {
status.text = @"Failed to open/create database";
}
}
[filemgr release];
[super viewDidLoad];
}
Но я продолжаю блуждающий если viewDidLoad является BaseT места для его создания. Не удалось ли создать во время инициализации приложения?
Это больше вопрос о том, что является лучшей практикой, а так как мой текущий код работает jusst тонкие ^^
Спасибо за Ваше мнение
Джейсон
Спасибо за советы перехода на CoreData –