2

ネイティブ プラグインを使用して、ストレージにネイティブ データベースを使用したいと考えています。Apple のベース API は純粋な C であるため、FBDB などのサードパーティ ライブラリを使用したいと考えています。理想的には、javascript が「クエリ」を作成し、処理のためにネイティブ プラグインに送信しますが、これは絶対に必要というわけではありません。

  1. サードパーティのライブラリをインポートして使用するにはどうすればよいですか? FMDB ライブラリのどの部分を含める必要がありますか? libsqlite3.dylib を追加するにはどうすればよいですか? FMDB は ForgeModule と ForgeModuleResources もターゲットにする必要がありますか? これに関するドキュメントを見てきましたが、これらの指示を FMDB に具体的に適用するのが困難です。

  2. この場合、適切なファイル構造がどのように見えるかについて、より詳細なアイデアを教えていただけますか?

  3. FMDB を使用することをお勧めしますか? トリガーでより適切に機能する代替オプションはありますか? さらに、ForgeInspector は ARC を修正しますか?

基本的に、従うべきアウトラインと sqlite ラッパーの推奨事項を探しています。

ありがとう!

4

1 に答える 1

2
  1. iOS プラグインにサードパーティ コードを含める方法については、http: //docs.trigger.io/en/v1.4/modules/native/external_libraries.html#iosをご覧ください。

    FMDB を使用するには、リポジトリを含めて.hファイルを ForgeModule プロジェクトにコピーする必要があり.mます (ファイルを ForgeModule ターゲットに追加することを忘れないでください)。

    プロジェクトに FMDB ファイルを追加する

    次に、libsqlite3.dylib フレームワークを ForgeModule ターゲット (ForgeModule プロジェクト内) と ForgeInspector ターゲット (ForgeInspector プロジェクト内) の両方に追加します。

    libsqlite フレームワークを追加

    また、ARC を無効にする必要がありますfmdb.m(上記も参照)。

    その後、FMDB ヘッダーをインポートし、ForgeInspector を使用してプラグインを試すことができるはずです。

    プラグインのバージョンをアップロードする場合は、iOS ビルド ステップを追加して SQLite フレームワークを含める必要があることに注意してください - http://docs.trigger.io/en/v1.4/modules/native/native_build_stepsを参照してください.html#add-ios-system-framework .

  2. プラグインが fmdb という名前の場合 (競合を避けるために、名前空間をもっと大きくすることをお勧めします)、必要がfmdb_API.hありますfmdb_API.m- 私は通常、プラグインを独自のグループ内および独自のフォルダー内に配置します。また、サードパーティのコードを独自のグループとフォルダーに配置します。たとえば、次のようになります。

    % find fmdb FMDB_lib
    fmdb
    fmdb/fmdb_API.h
    fmdb/fmdb_API.m
    FMDB_lib
    FMDB_lib/FMDatabase.h
    FMDB_lib/FMDatabase.m
    FMDB_lib/FMDatabaseAdditions.h
    FMDB_lib/FMDatabaseAdditions.m
    FMDB_lib/FMDatabasePool.h
    FMDB_lib/FMDatabasePool.m
    FMDB_lib/FMDatabaseQueue.h
    FMDB_lib/FMDatabaseQueue.m
    FMDB_lib/fmdb.m
    FMDB_lib/FMResultSet.h
    FMDB_lib/FMResultSet.m
    
  3. 内部で FMDB を使用したことがないため、十分な経験がありません。ただし、C 中心の API を Objective-C コードに押し込もうとするのはかなり苦痛であることを私は知っています (私はAddressBook.frameworkを考えています)。FMDB はそれを SQLite で解決することを目指しているので、良いアイデアのように思えます。

于 2012-12-17T16:10:42.240 に答える