トップ 最新 追記

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|

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

日記アプリだが、投稿された写真をどこに保存するかが課題だ。CloudKitのDatabase storegeの無料枠は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

_ 【Cocoa練習帳】

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

トップ 最新 追記