除了链接器错误(您需要根据@JeremyP提供的答案将libsqlite3.dylib添加到您的项目中),sqlite3_open
命令需要一个恒定的字符指针,您可以从NSString创建该指针你有如下:
// Get the path to the database file
NSArray *searchPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [searchPaths objectAtIndex:0];
NSString *databasePath = [documentPath stringByAppendingPathComponent:@"ppcipher.s3db"];
// Open the database file
const char *cDatabasePath = [databasePath cStringUsingEncoding:NSUTF8StringEncoding];
sqlite3_open(cDatabasePath, &database);
如果你看看SQLite documentation,你通常可以看到预期的。例如:
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
实际上,我的答案的第一行有一个轻微的错字。它是libsqlite3.dylib – JeremyP 2011-03-09 10:52:50
@JeremyP感谢您的支持。我相应地更新了我的答案。 :-) – 2011-03-09 12:56:52