2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[macOS][iOS]CloudKitを使った日記アプリで写真をどう扱うか

Last updated at Posted at 2017-10-28

日記アプリだが、投稿された写真をどこに保存するかが課題だ。CloudKitのDatabase storageの無料枠は100MB。だが、用途が異なり利用できないと決めつけていたAsset storegeが利用できることに気がついた。

アセットの利用は簡単だ。

database.fetch(withRecordID: diaryRecordID, completionHandler: { (diaryRecord, error) in
    print(#function)
    if error != nil {
        print(error)
    }
    else {
        let asset = CKAsset(fileURL: fileUrl)
        diaryRecord!["photo"] = asset
        
        database.save(diaryRecord!, completionHandler: { (record, error) in
            if error != nil {
                print(error)
            }
            else {
                print(record)
            }
        })
    }
})

Assetフィールドにファイルを設定する。

レコードを保存するとファイルがアップロードされる。

Assetを操作するとダウンロードされる。

これで写真の投稿はなんとかなるのが分かったが、新たな課題が。無料枠を超えた場合、課金されるが、どうやら請求は開発者宛らしい。定額課金を考えないといけなさそうだが、利用制限の機能の実装が必要そうだ。iCloudの利用も検討することにする。

ソースコード
GitHubからどうぞ。

https://github.com/murakami/KeepADiary - GitHub

関連情報
CloudKitを使った日記アプリで写真をどう扱うか

Cocoa勉強会 BUKURO.swift (connpass)

Cocoa勉強会 BUKURO.swift (ATND)

Cocoa勉強会 BUKURO.swift (Peatix)

【Cocoa練習帳】
http://www.bitz.co.jp/weblog/

http://ameblo.jp/bitz/(ミラー・サイト)

Qiita

2
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?