Tôi đã xem xét tất cả các bài đăng khác có lỗi tương tự (sử dụng loại không khai báo) nhưng vẫn không thể tìm ra điều gì sai với dự án của tôi.Swift Bridging Header - Sử dụng lỗi không khai báo 'FMDatabase'
Sự khác biệt với các trường hợp khác là tôi có thể sử dụng thành công FMDatabase trong các lớp AppDelegate và ViewController nhưng không phải từ lớp khác mà tôi đã tạo, mặc dù trong cùng một dự án với lớp AppDelegate và ViewController.
Và bằng "sử dụng thành công", tôi có nghĩa là tôi có thể truy cập vào cơ sở dữ liệu và các bảng trong đó.
Cũng lưu ý rằng tôi không phải nhập bất kỳ thứ gì để sử dụng FMDatabase trong AppDelegate hoặc ViewController.
Cho đến nay những gì tôi đã làm (Xcode 6.4 Swift 1.2.):
Tạo một dự án nhanh chóng nhìn duy nhất.
cài đặt FMDB sử dụng cocoapods (https://cocoapods.org/?q=fmdb)
Tạo một tiêu đề cầu nối cho FMDB
tôi thành công có thể khai báo và sử dụng FMDatabase từ các lớp AppDelegate.swift và ViewController.swift.
AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var database: FMDatabase? // OK
...
ViewController.swift
class ViewController: UIViewController {
var database: FMDatabase? // OK
...
Trong DBUtil.swift mặc dù tôi nhận được “Sử dụng kiểu khai báo‘FMDatabase’” lỗi.
DBUtil.swift
class DBUtil {
var database: FMDatabase? // Error: "Use of undeclared type 'FMDatabase'
}
Một người mô phỏng có sẵn tại Swift Bridging Header.
Để biết bất kỳ gợi ý hoặc ý tưởng nào, cảm ơn bạn trước.
Các bạn đã thử một tuyên bố nhập khẩu rõ ràng? Ngoài ra, DBUtil có được thêm vào cùng một mục tiêu không? Chỉ cần một vài suy nghĩ ... –
@RomanSausarnes Cảm ơn bạn đã bình luận của bạn. Tôi đã cố gắng nhập nhưng vẫn không thể tìm thấy những gì cần nhập. Cũng lưu ý tôi không cần phải nhập bất cứ thứ gì để truy cập nó từ AppDelegate hoặc ViewController. Và có DBUtil là trong cùng một dự án như AppDelegate và ViewController, vì vậy nó phải là cùng một mục tiêu, trừ khi tôi bị mất một cái gì đó. –
Tệp có thể có các mục tiêu khác nhau ngay cả khi chúng nằm trong cùng một dự án. Xem qua các tab thanh tra trong bảng điều khiển trượt bên phải cho một số hộp kiểm cho biết mục tiêu nào đã được thêm vào, chỉ để chắc chắn. Điều đó chắc chắn sẽ giải thích hành vi bạn đang thấy. –