SQLite.swift с swift 2.0 в Xcode 7.0

Я недавно обновился до Xcode 7.0 и пытаюсь построить свой проект, который использует библиотеку SQLite.swift. После перехода к последнему быстрому синтаксису (Правка-> Преобразовать-> К последнему быстрому синтаксису...) я получаю так много ошибок и не знаю, с чего начать их исправление. Я также пытался преобразовать проект SQLite.swift отдельно, но всегда получал много предупреждений во время компиляции и некоторые ошибки, такие как:

/Users/dobrev/Development/iOS/SQLite.swift/SQLite/Statement.swift:25:30: error: cannot invoke initializer for type 'sqlite3_destructor_type' with an argument list of type '(COpaquePointer)'
internal let SQLITE_STATIC = sqlite3_destructor_type(COpaquePointer(bitPattern: 0))
                             ^
/Users/dobrev/Development/iOS/SQLite.swift/SQLite/Statement.swift:26:33: error: cannot invoke initializer for type 'sqlite3_destructor_type' with an argument list of type '(COpaquePointer)'
internal let SQLITE_TRANSIENT = sqlite3_destructor_type(COpaquePointer(bitPattern: -1))

который в конечном итоге в Command failed due to signal: Segmentation fault 11

Может кто-нибудь помочь?

1 ответ

#define SQLITE_STATIC      ((sqlite3_destructor_type)0)
#define SQLITE_TRANSIENT   ((sqlite3_destructor_type)-1)

от <sqlite3.h> не импортируются в Swift, вероятно, из-за "небезопасного" приведения указателя.

Возможное определение Swift показано в проекте SQLite.swift, в Statement.swift:

let SQLITE_STATIC = sqlite3_destructor_type(COpaquePointer(bitPattern: 0))
let SQLITE_TRANSIENT = sqlite3_destructor_type(COpaquePointer(bitPattern: -1))

Для Swift 2 вам понадобится

let SQLITE_STATIC = unsafeBitCast(0, sqlite3_destructor_type.self)
let SQLITE_TRANSIENT = unsafeBitCast(-1, sqlite3_destructor_type.self)
Другие вопросы по тегам