(主アプリ+ウィジェット)X AppGroup + Realm 用でRealmMgrを書く
こんにちは。川上です。
まずは、主アプリに組み込む画像を、
・「写真」アプリ(UIImagePickerController)
・D&Dサポートする外部アプリ
で、取得してRealmに保存するんです。
で、作成するRealmLibMgrは、アプリとウィジェットでRealmにアクセスする共通ソースで使うんです。
DBの検索用のBaseRealメンバの”fetchStr”で、DBを取得する用I/Fを作成しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | class BaseRealm: Object,Identifiable { ・・・ static func fetchListSortByFetchStr_T(_ type: Element.Type ,_ terFetch:String) -> [Element] // Query using an NSPredicate let predicate = NSPredicate(format: "fetchStr = %@ ",terFetch) var ress:[Element] = [] let res = realm.objects(Element.self).filter(predicate) for fetch in res { ress.append(fetch); } return ress } |
RealmLibMgrにRealmDBにimageを保存する感じのI/Fです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | // MARK: - +++ UIKit U/I +++ RealmLibMgr() class RealmLibMgr { // MARK: ⭐️ === RealmDBに Imageを保存する static func setImageToRaalm( _ key:String, _ setImage :UIImage, _ numidx :Int = 0) -> UIImage { // === get RealmDB by "fetchStr" let conte_db_arry = GroundImgDB.fetchListSortByFetchStr_T(GroundImgDB.self,key) print("=====" + #function + ": conte_db_arry.count = \(conte_db_arry.count)") let grndb = GroundImgDB.create() // === 初回Img set if conte_db_arry.isEmpty { print("=====" + #function + "isEmpty : numidxt = \(numidx),key=\(key)") grndb.cur_num = numidx grndb.fetchStr = key grndb.imagePhotos = setImage grndb.save() } // === Img Update else { // conte_db_arry,count 1で、複数keyはない let grndb_org = conte_db_arry[0] grndb.obj_id = grndb_org.obj_id grndb.regday = grndb_org.regday grndb.fetchStr = key grndb.cur_num = grndb_org.cur_num grndb.imagePhotos = setImage grndb.save() } return setImage } // === setImageToRaalm } // == RealmLibMgr |
で、次は、DBからのReadですwね。
ではでは。