同じエラー(宣言されていないタイプの使用)で他のすべての投稿を調べましたが、それでもプロジェクトの何が問題なのか理解できません。
他の場合との違いは、AppDelegateクラスとViewControllerクラスでFMDatabaseを正常に使用できることですが、AppDelegateクラスとViewControllerクラスと同じプロジェクトではありますが、作成した別のクラスからは使用できません。
そして、「正常に使用する」とは、データベースとその中のテーブルにアクセスできることを意味します。
また、AppDelegateまたはViewControllerでFMDatabaseを使用するために、何もインポートする必要がなかったことにも注意してください。
これまでのところ(Xcode。6.4Swift 1.2):
単一のビューを作成しましたSwiftプロジェクト。
Cocoapodsを使用してインストールされたFMDB( https://cocoapods.org/?q=fmdb )
FMDBのブリッジヘッダーを作成しました
AppDelegate.SwiftクラスとViewController.SwiftクラスからFMDatabaseを正常に宣言して使用できます。
AppDelegate.Swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var database: FMDatabase? // OK
...
ViewController.Swift
class ViewController: UIViewController {
var database: FMDatabase? // OK
...
DBUtil.Swiftで、「宣言されていないタイプ「FMDatabase」の使用」エラーが発生します。
DBUtil.Swift
class DBUtil {
var database: FMDatabase? // Error: "Use of undeclared type 'FMDatabase'
}
再生機は Swift Bridging Header で入手できます。
ヒントやアイデアがありましたら、よろしくお願いします。
他の場合の返信をここに残します。同じエラーが発生しましたが、問題はブリッジヘッダーにあり、#import "FMDatabase.h"
を書き忘れました。
CocoaPodsを使用してFMDBをインストールした場合は、追加するだけです
import FMDB
fMDatabaseを使用しているSwiftファイル内。
私の場合も同じエラーでした。 「必要に応じてアイテムをコピーする」にチェックマークを付けて、プロジェクトに.hファイルと.mファイル(フォルダーではない)のみを追加することで修正し、グループを作成して作成しました。次に、objcブリッジヘッダーを作成しました。
ターゲットのビルドフェーズ-バイナリとライブラリのリンク-libsqlite3.tbdを追加しました。埋め込まれたコンテンツにSwiftコードをYesに設定します。
これにより、この参照の問題が解決されました。