2014-06-05 13 views
22

I dodaną libsqlite3.0.dylib do mojego projektu, a potem próbował importować za pomocą następującego kodu:Swift Nie można importować Sqlite3 iOS

import UIKit 
import sqlite3 

class Dataware: NSObject 
{ 

} 

Ale to daje mi ten błąd:

No Taki moduł 'sqlite3'

Odpowiedz

44

Dodaj go do pliku Bridging-header.h:

#import <sqlite3.h> 

Jest to podstawowy mechanizm importowania bibliotek w języku C.

Jeżeli nie masz jeszcze pliku Bridging-header.h:

  1. dodać plik pomostowe header.h (lub częściej (Nazwa_projektu) -Bridging-header.h
  2. Go do zakładki ustawień kompilacji dla twojego projektu
  3. Znajdź "Nagłówek mostkujący Objective" Najłatwiejszy sposób to szukanie pomostu
  4. Wprowadź nazwę i ścieżkę do pliku utworzonego w kroku 1. Prawdopodobnie (ProjectName)/(Nazwa projektu) -Bridging-Header.h
+0

Gdzie mogę dodać to do mojego projektu? – PREMKUMAR

+0

Dodałem ten plik i zaimportowałem plik sqlite3.h, ale dla .swift używam var dbsql = sqlite3() w tej linii. ale przyszedł czas użycia nierozwiązanego identyfikatora "sqite3". – PREMKUMAR

7

gdy chce się dodać SQLite do ramach docelowej module.map jest potrzebne
ponieważ SQLite nie jest odwzorowany, a do tego właśnie:
1. Utwórz plik w projekcie „moduł/module.map „
2. utworzyć moduł z nagłówka parasol:

module sqlite3 [system] { 
     header "/Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.0.sdk/usr/include/sqlite3.h" 
     link "sqlite3" 
     export * 
    } 

* zmienić Xcode6-Beta5.app w drodze do słuszna
3. podłączyć plik mapy do projekcji, wyszukać” importu ścieżki w "Ustawieniach budowania" i podaj pełną ścieżkę do pliku modułu

+0

To rozwiązanie zadziałało, gdy próbowałem dodać sqlite do mojego szybkiego szkieletu – Ben

+0

Hi @ben. Czy mógłbyś rozwinąć swoją odpowiedź? Nie mam pojęcia, jak dodać nowy moduł –

+1

Hi @RatikantaPatra, aby dodać nową mapę modułów, należy: [1] utworzyć plik o nazwie module.map [2] dodać potrzebne informacje o module (jak w mojej odpowiedzi) [3 ] w Xcode Idź do Build Settings-> ustaw Swift Compiler-> Search Paths-> Import Path do katalogu, w którym umieścisz moduł.plik mapy w – Ben

5

Musimy zaimportować pliki nagłówkowe dla SQLite3 do kontrolera widoku, aby kompilator mógł zobaczyć funkcję i inne definicje, które składają się na API.

Nie ma możliwości bezpośredniego importowania pliku nagłówkowego do kodu Swift, ponieważ biblioteka SQLite3 nie jest spakowana jako moduł.

Najprostszym sposobem rozwiązania tego problemu jest dodanie do projektu nagłówka pomostowego. Po uzyskaniu nagłówka pomostowego można dodać do niego inne pliki nagłówkowe, a te pliki nagłówków będą odczytywane przez kompilator Swift. Istnieje kilka sposobów dodania pliku pomostowego. Użyjemy prostszego z tych dwóch elementów, który tymczasowo doda klasę Objective-C do projektu. Zróbmy to teraz.

Plik ➤ Nowy ➤ plików .... W sekcji iOS części okna, wybierz Cocoa Touch Klasa i naciśnij Dalej. Nazwij klasę Tymczasowa, przekształć ją w podklasę NSObject, zmień język na Objective-C i naciśnij Następny. Na następnym ekranie naciśnij przycisk Utwórz. Po wykonaniu tej czynności Xcode wyświetli okno z pytaniem, czy chcesz utworzyć nagłówek mostu. Naciśnij Tak. Teraz w projekcie Navigator zobaczysz pliki dla nowej klasy (Temporary.m i Temporary.h) oraz nagłówku pomostowego, który jest nazywany SQLite Persistence-pomostowe header.h. Usuń pliki Temporary.m i Temporary.h - już ich nie potrzebujesz. Wybierz nagłówek pomostowego, aby otworzyć go w edytorze, a następnie dodaj do niego następujący wiersz:

#import < sqlite3.h>

Teraz kompilator widzi biblioteki SQLite3 i nagłówek pliki, możemy napisać więcej kodu w ViewController.swift

To wszystko!

3

Cześć Proszę wykonać następujące kroki

w Xcode 8.3.3 za pomocą szybkiej 3

  1. Idź do budowy Fazy Tab
  2. Przejdź do linku Binary z bibliotekami tab sub.

    (a) Kliknij przycisk +, aby dodać sqlite ramy następnie wyszukać SQLite następnie można zobaczyć libsqlite3.0.tbd i libsqlite3.tbd

    (b) Następnie wybierz tylko libsqlite3.tbd (Nie dodawać zarówno ponieważ kompilator nie może znaleźć sqlite3 stuct kiedy zadeklarować w viewController)

  3. następnie dodać plik Bridging-header.h (ponieważ SQLite nie jest napisane w SWIFT)

  4. Bridging nazwy powinien być Nazwa_projektu-Bridging-Header .h plik (tylko w celu nazwania konwencji, nie jest obowiązkowy)
  5. Napisz #import <sqlite3.h> w pliku Bridging-header
  6. Go zbudować ustawienia zakładki

    (a) W poszukiwaniu karcie Ustawienia budowania Swift Compiler - wariant Ogólnego i ustawić YES do Install Objective-C Zgodność Header

    (b) Ustaw swoją nazwę i ścieżkę do pliku nagłówka w Objective-C Bridging header opcji (lub można po prostu przeciągnij plik nagłówka pomostową)

Powiązane problemy