除了鏈接器錯誤(您需要根據@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