Swift Bridging Header-использование ошибки необъявленного типа " FMDatabase
Я просмотрел все другие сообщения с той же ошибкой (использование необъявленного типа), но до сих пор не могу понять, что не так с моим проектом.
разница с другими случаями заключается в том, что я могу успешно использовать FMDatabase в классах AppDelegate и ViewController, но не из другого класса, который я создал, хотя и в том же проекте, что и классы AppDelegate и ViewController.
и "успешно использовать", я имею в виду, что я могу получить доступ к базе данных и таблицам в он.
также обратите внимание, что мне не нужно было ничего импортировать для использования FMDatabase в AppDelegate или ViewController.
до сих пор то, что я сделал (Xcode. 6.4 Swift 1.2):
создан проект swift с одним представлением.
установлен FMDB с помощью cocoapods (https://cocoapods.org/?q=fmdb)
создан заголовок моста для FMDB
Я могу успешно объявите и используйте FMDatabase из AppDelegate.swift и ViewController.быстрые занятия.
AppDelegate.Свифт!--4-->
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var database: FMDatabase? // OK
...
ViewController.Свифт!--4-->
class ViewController: UIViewController {
var database: FMDatabase? // OK
...
В DBUtil.swift, хотя я получаю ошибку" использование необъявленного типа "FMDatabase"".
DBUtil.Свифт!--4-->
class DBUtil {
var database: FMDatabase? // Error: "Use of undeclared type 'FMDatabase'
}
репродуктор доступен по адресу Стремительный Наводя Заголовок.
за любые подсказки или идеи, заранее спасибо.
4 ответов
потому что DBUtil
является частью BridgingHeaderTests
target (но делегат приложения и контроллер представления не являются), но эта цель не настроена для FMDB (параметр "Objective-C Bridging Header" для тестовой цели пуст).
вы можете:
Я оставляю здесь ответ для других случаев: я получил ту же ошибку, но проблема была в моем заголовке моста, я забыл написать #import "FMDatabase.h"
Если вы установили FMDB с CocoaPods, просто добавьте
import FMDB
в файле swift, где вы используете FMDatabase..
мой случай был такой же ошибкой. Я исправил это, добавив только the .h и .m файлов (не папка) для проекта, отметив "копировать элементы, когда это необходимо" & & создать группы и сделал это . Затем создан заголовок моста obj c.
на этапах сборки Target-Link Binary с библиотеками-добавлен libsqlite3.Подлежит определению. Turned embed content содержит swift-код на Yes.
это решило эту справочную проблему.