*

[swift]Swiftでデータを扱うアプリを作りたい。sqliteのラッパーSwiftDataを初期設定。

公開日: : 最終更新日:2015/02/24 Swift

Swift入門まとめページはこちら→Swiftまとめページ

息抜きに

基本飽き性なので、ある程度できるようになると飽きてしまって、続かないんです。
で、しばらく新しいことをやって、また戻ってきて触り始める。
そんなルーチンです。
意外に一度離れると新たな発見があったりします。

さて、それはさておき息抜きにswiftでも触ってみます。

ちなみにMacOSのアプリを作るのは初心者です。

目標

データを保存できるアプリを作ります。ちょっとした便利ツール。
プログラムの基本はデータ処理ですよ!

データベース

使うのはsqliteにします。
なにやらSwiftDataというラッパーがあるようで、それを使えばよいみたい。

とりあえず、GitHUBからダウンロードしてきます。
URLはこちら-> SwiftData

設定

XCodeを起動して、プロジェクトを適当に作ります。

Master-Detail Applicationを選択。
wannabenote

ProductNameを適当にUseSwiftDataにして作成。
wannabenote

作成したら、ダウンロードしてきた「SwiftData.swift」をプロジェクトにドラッグ&ドロップ。
wannabenote

SwiftData.swiftが利用できるようになっているかを確認します。
プロジェクトをクリックして、Build Phasesを選択。
Compile SourcesにSwiftData.swiftが追加されていればOKです。
(ここに追加されていなくていくらやっても上手く”SD”が参照されなくて私は一時間ハマりました。)
wannabenote

次に、次にsqliteを作成できるようにBridgeの設定をします。
プロジェクトを右クリックして、New Fileを選択。
wannabenote

左ペインでiOSのSourceを選択して、HeaderFileを選択。Nextをクリック。
wannabenote

“Bridging-Header.h”というファイル名で作成します。
プロジェクト名-Bridfing-Header.hという名前にするとかいろいろ作法があるみたいですが、結局どれが正解か調べきれませんでした。
wannabenote

Bridging-Header.h にsqlite3が使えるようにimport文を追加。
wannabenote
一応画像じゃなくてコードも↓に記載しておきます。
import文を追加しただけです。

#ifndef UseSwiftData_Bridging_Header_h
#define UseSwiftData_Bridging_Header_h

#import "sqlite3.h"

#endif

次にsqlite3の本体をリンクします。
プロジェクトをクリックして、再度Build Phasesを選択します。
Link Binary With Libraries のノードを開いて、”+”をクリック。
wannabenote

検索窓にsqliteと打つと、libsqlite3.dylib というのが出てきますので、選択してAddをクリック。
wannabenote

Build Settingsを選択して、検索窓に「objective-c bridging」と入力。
出てきた Objective-C Bridging Header に先ほどの Bridging-Header.h と入力して、設定します。
wannabenote

一応これで設定は終わりです。
再生ボタンを押してビルドが成功すればOKです。
ちなみに自分がダウンロードしたSwiftDataは、asUIImageの関数でエラーを吐きました。
エラー内容は「Bound value in a conditional binding must be of Optional type」とのこと。
Swiftの仕様が変わったんでしょうか。

public func asUIImage() -> UIImage? {
            
    if let path = value as? String{
        let docsPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)[0] as String
        let imageDirPath = docsPath.stringByAppendingPathComponent("SwiftDataImages")
        let fullPath = imageDirPath.stringByAppendingPathComponent(path)
        if !NSFileManager.defaultManager().fileExistsAtPath(fullPath) {
            println("SwiftData Error -> Invalid image ID provided")
            return nil
        }
        if let imageAsData = NSData(contentsOfFile: fullPath) {
                    return UIImage(data: imageAsData)
        }
	let imageAsData = NSData(contentsOfFile: fullPath)
	return UIImage(data: imageAsData)
        }
    return nil
}
if let imageAsData = NSData(contentsOfFile: fullPath) {
    return UIImage(data: imageAsData)
}

この部分でエラーが出るので書き換えてみましょう。

if let imageAsData = NSData(contentsOfFile: fullPath) as NSData? {
    return UIImage(data: imageAsData)
}

こんな感じ?

もしくは

/*
if let imageAsData = NSData(contentsOfFile: fullPath) {
     return UIImage(data: imageAsData)
}
*/
let imageAsData = NSData(contentsOfFile: fullPath)
return UIImage(data: imageAsData)

こんな感じでしょうか。

果たしてこれでいいかは疑問。

ビルドが上手くいけば、おそらく設定は上手くいっています。

次回は実際に使ってみます。

ad

関連記事

swift

[Swift]Swiftチュートリアル。UITableViewControllerを設定する。

データが取得できるようになったので、今度はデータを複数表示してみます。 Swift入門まとめペ

記事を読む

swift

[Swift]TableViewControllerにナビゲーションバーを追加する方法 その2

前回のTableViewControllerにナビゲーションバーを追加する方法の続きです。 S

記事を読む

swift

[Swift]Swiftチュートリアル。SwiftDataで取得したデータをTableViewにデータを出力する。

いよいよSwiftDataからデータを取得してTableDataViewに出力してみます。 S

記事を読む

swift

[Swift]TableViewControllerにナビゲーションバーを追加する方法

画面遷移するのに大切なナビゲーションバーのお話。 Swift入門まとめページはこちら→Swif

記事を読む

swift

[Swift]Swiftチュートリアル。コントローラを複数綺麗に並べる。その2。

前回、Swiftで真ん中にコントロールを配置した続き。 Swift入門まとめページはこちら→S

記事を読む

wannabenote

[Swift]Swiftチュートリアル。ボタンを真ん中に配置して処理を記述する方法。

前回(SwiftData設定)の続き。 Swift入門まとめページはこちら→Swiftまとめペ

記事を読む

swift

[Swift]Swiftチュートリアル。SwiftDataでCreate Tableする方法。

前回、ボタンを配置できたので、いよいよデータベースを扱いましょう。 Swift入門まとめページ

記事を読む

swift

[Swift]Swiftチュートリアル。SwiftDataでInsertを発行する方法。

CreateTableを前回出来るようになったので、今度はデータを挿入してみましょう。 Swi

記事を読む

swift

[Swift]Swiftチュートリアル。SwiftDataでデータをselectする方法。

データの挿入が出来たので、データを取得してみましょう。 Swift入門まとめページはこちら→S

記事を読む

swift

[Swift]Swiftチュートリアル。コントロールを複数綺麗に並べる。

ちょっと趣向を変えて、コントロールの並べ方です。 綺麗にコントロールを並べるにはコツがいります

記事を読む

ad

Message

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

ad

  •  Auther;わなび

     「オープン系得意だよね? 俺のPCの調子悪いんだけど」という無茶振りから解き放たれゲームエンジニアに。
    C#とかUnityを扱います。
    Twitterフォロー大歓迎です。
    githubアカウント→wannabenote
  • follow us in feedly
PAGE TOP ↑