๐ŸŽ iOS

Realm ์‚ฌ์šฉํ•˜๊ธฐ

gom1n 2022. 11. 2. 08:30

๋กœ์ปฌ DB ์“ธ ์ผ์ด ์žˆ์–ด ์•Œ์•„๋ณด๋˜ ์™€์ค‘, ํ•œ๋ฒˆ๋„ ์•ˆ ์จ๋ดค๊ณ  ์นญ์ฐฌ์ด ์ž์žํ•œ Realm์„ ์จ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ์ฝ๋Š”๊ฑฐ์•ผ...๋ ˜? ์ด๋ผ๋Š”๋ฐ ๋ญ”๊ฐ€ ์ด์ƒํ•˜๋‹ค

 

1. ํŒŸํŒŒ์ผ์— ์ถ”๊ฐ€ (๋‚˜๋Š” ์ฝ”์ฝ”์•„ํŒŸ์„ ์‚ฌ์šฉ)

pod 'RealmSwift', '~>10'

 

2. ๊ทธ๋ฆฌ๊ณ  import ํ•ด์ค€๋‹ค.

import RealmSwift

 

3. DB์— ์ €์žฅํ•  ๋ชจ๋ธ ์ •์˜

class Data: Object {
    @objc dynamic var num = 0
    @objc dynamic var num2 = 0
    @objc dynamic var num3 = 0
}

 

4. Realm ๊ฐ์ฒด ์ƒ์„ฑ

let realm = try! Realm()

 

5. ์ฝ๊ธฐ (Read)

let data = realm.objects(Data.self)
print(data)

// ๊ฐ์ฒด ํ•˜๋‚˜์”ฉ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹ถ๋‹ค๋ฉด
for i in data {
	print(i)
}

 

6. ์“ฐ๊ธฐ (Create)

- ๊ฐ์ฒด ์ƒ์„ฑ ํ›„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

let data = Data()
data.num = 1
data.num2 = 2
data.num3 = 3

try! realm.write { 
      realm.add(data)
    }

 

7. ์‚ญ์ œ (Delete)

- ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์„ ํƒ์ ์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•

- ์ „์ฒด์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•

// ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์„ ํƒ์  ์‚ญ์ œ
// num = ? ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„์™€ ์‚ญ์ œ์‹œํ‚จ๋‹ค.
let predicate = NSPredicate(format: "num = %@", num)
let obj = realm.objects(Data.self).filter(predicate)
try! realm.write { 
    realm.delete(obj)
    }

// ์ „์ฒด์‚ญ์ œ
try! realm.write { 
    realm.deleteAll()
    }

 

 

์ •๋ง ์œ ์šฉํ•˜๊ณ  ๊ฐ„ํŽธํ•˜๋‹ค^^