无法为类型“sqlite3_destructor_type”调用初始化程序

Posted

技术标签:

【中文标题】无法为类型“sqlite3_destructor_type”调用初始化程序【英文标题】:Cannot invoke initializer for type 'sqlite3_destructor_type' 【发布时间】:2015-06-10 15:09:35 【问题描述】:

到目前为止,answer from Martin R 运行良好。但是从 Swift2 开始,它现在会引发错误

无法使用“(COpaquePointer)”类型的参数列表调用“sqlite3_destructor_type”类型的初始化程序

在那些行中:

private let SQLITE_STATIC = sqlite3_destructor_type(COpaquePointer(bitPattern: 0))      // https://***.com/a/26884081/1271826
private let SQLITE_TRANSIENT = sqlite3_destructor_type(COpaquePointer(bitPattern: -1))

【问题讨论】:

这在github.com/stephencelis/SQLite.swift/issues/133 中进行了讨论(请注意,我的回答中的代码也来自该项目)。我不知道建议的解决方案是否有效。 @MartinR 非常感谢! 【参考方案1】:

摘自@MartinR 提供的 github 帖子,答案是

internal let SQLITE_STATIC = unsafeBitCast(0, sqlite3_destructor_type.self)
internal let SQLITE_TRANSIENT = unsafeBitCast(-1, sqlite3_destructor_type.self)

【讨论】:

以上是关于无法为类型“sqlite3_destructor_type”调用初始化程序的主要内容,如果未能解决你的问题,请参考以下文章

C# 无法将类型为“System.Byte[]”的对象强制转换为类型“System.Data.DataTable

SQL Server Management Studio 无法将类型为“System.__ComObject

无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Micro

如何解决错误:无法调用类型为 `......` 的参数列表类型为 `...` 的初始化程序?

无法使用类型为“()”的参数列表为类型“Int”调用初始化程序

使用下标时出错:无法使用类型索引为类型值下标...