iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど
日記アプリだが、投稿された写真をどこに保存するかが課題だ。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の利用も検討することにする。