【Console Application】ファイルとデータベース 264【学習記】
概略
sqlite3.dylib を取り込むのはもう古いらしい🙄
sqlite3.tbd を取り込むのが最新☝️
但し `@import SQLite3;` という記述は OC++ ではエラーとなるので従来の `#import <sqlite3.h>` という記述になるっぽい🤤
sqlite3ext.h というヘッダも存在していて役割が良くわからないがこのヘッダ名で調べて出てくる記事を見る限りでは特に説明も無く使われてるので @ 式の記述ができない OC++ ではおまじない的にこのヘッダも取り込んでおいても良いかも🤔
#学習記 #Objective_C
#import #dylib #tbd #SQLite3
前回の粗筋
独自配列クラスにブラケットアクセスを付加する実装方法で短い文字数での使用が可能になり平和が訪れた🤤
DBControllerBase
DB 接続部分の実装へ戻ってきたお🙄
このファイルとデータベースを始めた辺りで一度調べた記憶は有るけど「できそうだな、ヨシ🤪」で済ませちゃった気がするので改めて調べる事にするぽ🤤
確かヘッダが既に有って
前回は確かできる事だけを確認してそれ以上詳しく調べなかったんだけど今回は「できるだけ新しい記事」から見る様にするぽ🤔
Xcode は更新の度に切り捨てたり仕様が大きく変わったりが激しいので古い記事を見てると「もうそんな方法では実装できない」っていうのが当たり前のように出てきちゃうのよね🙄
これが Windows になると無いわけじゃないんだけど互換性が高いとか非推奨だけど残ってたりなんだけど…😞
まぁそういう取捨選択をバッサリやるからこそ 68K → PPC → Intel → Apple silicon という OS 駆動 CPU の変更を可能としてきたんだと思うけど😑
パっと見で出てくるのは2020年付近の記事が恐らく最新かな?🤔
それ以降は Swift でどうぞって事だろうねぃ😞
なんで題名もタグも Objective-C なのに Swift のライブラリの話をしてるんだろ…🙄
以前調べた時は dylib とヘッダを引き込む話だったんだけど Swift 用ライブラリを持ってきて OC で使う話をしてるんだろうか?🤔
というかこの「◾️」、絵文字の方の四角じゃんよ🙄
前回調べてた時にも出てきた "FMDB" 😑
ダメじゃないんだけど可能なら標準のままやりたいのよね🤔
Java の場合は DB の操作事態は標準が有るんだけどエンジンに選択肢が多いので接続の時に使いたいエンジンの jar を持ってきて個別に接続する方式☝️
OC の場合は、 MacOS に標準で SQLite が入ってる関係で dylib が入ってて開発用にヘッダが有る、という状態だった筈なんだけど…それが書かれてる記事が古いのしか無い…?🙄
ほらほらこういうのこういうの🙄
しかしこれはヘッダ…というか import 文について触れられていない😞
ここでは <sqlite3.h> になってるから libsqlite3.dylib を追加してヘッダ指定で行ける…かな🤤
二重引用符ではなく山括弧指定なので用意されてる手合のヘッダの筈😑
ライブラリ
ええと…?
………🤔
libsqlite3.dylib について書かれてる記事は古い物が多い😑
そして2020年の記事のは .tbd が出てきて .dylib ではない…て事は .tbd が新しいリンクライブラリ…?🙄
………🤔
林檎社の真意は判らないけど、個人的にはこれは「将来 dylib という拡張子は使わなくなるかも」もしくは「 Unix 系の so も混在させたい」という物ではないかなと思う🤤
ライブラリの名前は判ってるけれど、古来より MacOS で使われてきた dylib と、互換性が生まれた事により可能となった Unix 系のビルド生成物の so どちらか良くわからない、または混在の場合、橋渡しで取り込める仕組みを作っておくと以降のバイナリの拡張子は特に考えずに橋渡しのファイルの記述内容をいじるだけに変わる、という事?知らんけど🤪
そうすると最初に見つけた tbd での話をしている記事を見つつ進めると同じになる…のかな?🤤
"TARGETS/General/Framework and Libraries" から追加したらそこには表示されないでファイルの方に Frameworks フォルダが現れて追加されたお😑
………😑
そう、このプロジェクト OC じゃなく実は OC++ なのよね🙄
なので C 前提の OC モジュール群は OC++ ではダメって言われてるのはまぁ分かる😞
多分、ここで先に見つけたヘッダでの import の書き方をすれば通るんじゃないのかしら🤔
import で sql まで打鍵したところで sqlite3ext.h というのが出てきたので調べてみたんだけど特に説明もなく import するのが当たり前みたいな記事しか出てこないお😞
そういうとこだぞ、開発者界隈!🤬
OC での使用で特に説明は出てこないのだけど古い記事では sqlite3.dylib + `#import <sqlite3.h>` で新しめの記事だと sqlite3.0.tbd + `@import SQLite3;` なので念の為両方のヘッダを書いておこうかなという感じ😑
役割が分かって要らない事が判明したら削除だと思うけど今はこの状態にしとこうかな🤤
次回は
接続部分に入れるかな?🤔
今回調べて出てきたサイトを見ながら書いてく🤤
この記事が気に入ったらサポートをしてみませんか?