私はあなたがsqliteのためのFMDBのObjective Cのラッパーを使用することをお勧めします。それは本当にあなたのsqliteデータベースへのアクセスを簡素化します。あなたは、アプリのデリゲートは、アクセスに使用します(次のサンプルコードを使用し、他のクラスからあなたのdbにアクセスするためにNSStringの* DB_PATH変数を使用することができ、その後
http://code.google.com/p/flycode/source/browse/trunk/fmdb#fmdb/src
から
を、それをダウンロードすることができますDB_PATH、その後、あなたのDBをアクセスもする
FMDatabase *db = [FMDatabase databaseWithPath:db_path];
を使用しています。下記のサンプルコードを参照してください。
- (NSString *) initialize_db {
NSString *DATABASE_RESOURCE_NAME = @"yourDbName";
NSString *DATABASE_RESOURCE_TYPE = @"db";
NSString *DATABASE_FILE_NAME = @"yourDbName.db";
// copy the database from the bundle if necessary
// look to see if DB is in known location (~/Documents/$DATABASE_FILE_NAME)
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentFolderPath = [searchPaths objectAtIndex: 0];
NSString *dbFilePath = [documentFolderPath stringByAppendingPathComponent: DATABASE_FILE_NAME];
[dbFilePath retain];
if (! [[NSFileManager defaultManager] fileExistsAtPath: dbFilePath]) {
// didn't find db, need to copy
NSString *backupDbPath = [[NSBundle mainBundle]
pathForResource:DATABASE_RESOURCE_NAME
ofType:DATABASE_RESOURCE_TYPE];
if (backupDbPath == nil) {
// couldn't find backup db to copy, bail
NSLog (@"couldn't init db");
return NULL;
} else {
BOOL copiedBackupDb = [[NSFileManager defaultManager]
copyItemAtPath:backupDbPath
toPath:dbFilePath
error:nil];
if (! copiedBackupDb) {
// copying backup db failed, bail
NSLog (@"couldn't init db");
return NULL;
}
}
}
return dbFilePath;
}
- (void)applicationDidFinishLaunching:(UIApplication *)application {
FMResultSet *item_rs;
// copy the database from the bundle if necessary
db_path = [self initialize_db];
if (! db_path) {
// TODO: alert the user!
NSLog (@"couldn't init db");
return;
}
FMDatabase *db = [FMDatabase databaseWithPath:db_path];
if (![db open]) {
NSLog(@"Could not open the db");
}
FMResultSet *rs = [db executeQuery:@"select * from yourTable"];
if ([db hadError]) {
NSLog(@"Err %d: %@", [db lastErrorCode], [db lastErrorMessage]);
}
while ([rs next]) {
[yourArray addObject:[rs stringForColumn:@"yourColumnName"]];
}
[rs close];
[db close];
// Configure and show the window
[window addSubview:[navigationController view]];
[window makeKeyAndVisible];
}