Xcode 9 beta 6 错误“对‘sqlite3_value’的引用不明确”

Posted

技术标签:

【中文标题】Xcode 9 beta 6 错误“对‘sqlite3_value’的引用不明确”【英文标题】:Xcode 9 beta 6 error "Reference to 'sqlite3_value' is ambiguous" 【发布时间】:2017-09-07 14:32:35 【问题描述】:

我在 FMDB/FMDatabase.m:1404:74 中遇到以下编译错误:

对“sqlite3_value”的引用不明确

当我使用 xCode 9 beta 6 测试我的 ios 项目时。 它在 xCode 8.3.2 中运行良好。

我的 FMDB 库版本是 2.4。

我已将字体标记为粗体,但在以下几行中出现编译错误:

void FMDBBlockSQLiteCallBackFunction(sqlite3_context *context, int argc, sqlite3_value **argv); // -Wmissing-prototypes

void FMDBBlockSQLiteCallBackFunction(sqlite3_context *context, int argc, sqlite3_value **argv)

请找到以下完整的函数代码 sn-p,其中我遇到了错误,并且我还附上了相同 的屏幕截图。

#pragma mark Callback function

void FMDBBlockSQLiteCallBackFunction(sqlite3_context *context, int argc, sqlite3_value **argv); // -Wmissing-prototypes
void FMDBBlockSQLiteCallBackFunction(sqlite3_context *context, int argc, sqlite3_value **argv)   
#if ! __has_feature(objc_arc)
    void (^block)(sqlite3_context *context, int argc, sqlite3_value **argv) = (id)sqlite3_user_data(context);
#else
    void (^block)(sqlite3_context *context, int argc, sqlite3_value **argv) = (__bridge id)sqlite3_user_data(context);
#endif
    if (block) 
        block(context, argc, argv);
    

我已尝试解决它,但找不到解决方案。 如果我能得到任何帮助,将不胜感激。

谢谢

更新:在 Xcode 9(最终版本)中,它工作正常。

【问题讨论】:

为什么不更新到 FMDB 2.7? 我尝试过使用 FMDB 2.7,但无法使用它。由于它是我旧项目迁移的一部分,因此在代码迁移完成后会更新。 【参考方案1】:

怎么样 1.清理项目 2. 删除 '~/Library/Developer/Xcode/DerivedData/ModuleCache/' 中的所有内容(管理器窗口内的按钮对我不起作用) 3.再次清洁 4. 构建项目

【讨论】:

我已经更新了我的问题,因为它在 Xcode 9 公开版本中运行良好。

以上是关于Xcode 9 beta 6 错误“对‘sqlite3_value’的引用不明确”的主要内容,如果未能解决你的问题,请参考以下文章

将 Xcode 6 beta 6 更新到 beta 7 后出现“可选错误”

Xcode 9 Beta 5 中的“ARConfiguration() – init() 不可用”错误

XCode 6 Beta 6 Beta 7 中的错误 - 可选类型的值未解包

Xcode 9 Beta Build System失败,没有错误

将 xcode 6 beta 6 升级到 xcode 6 GM 种子后的 Swift 编译器错误

更新到 Xcode 7 Beta 5 并收到此错误:失败,退出代码 6