gpt4 book ai didi

objective-c - Objective-C:不兼容的指针类型错误

转载 作者:行者123 更新时间:2023-12-03 15:01:16 25 4
gpt4 key购买 nike

我在用Objective-C挣扎...似乎无法获得它与C#之间的区别...无论如何,我有以下代码,这给了我一个构建错误

NSString* databasePath = @"some string";

if (sqlite3_open(databasePath, &db) == SQLITE_OK) {
}


sqlite3_open行上,出现以下编译器错误:


从不兼容的指针类型传递'sqlite_open'的参数1

最佳答案

在这种情况下,除了链接器错误(根据@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 */
);

关于objective-c - Objective-C:不兼容的指针类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5235271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com