Document Directory
๊ฐ๊ฐ์ ์ฑ์ ๋ชจ๋ Sandboxํ ๋์ด ์๋ค. ๊ฐ์ ๊ณ ์ ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ๋ป์ด๋ค. ๋ฐ์ด๋๋ฆฌ๋ Container๋ค๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ ํฌ๊ฒ Bundle Container, Data Container, iCloud Container๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ทธ ์ค์์ Documents ๋๋ ํฐ๋ฆฌ๋ Data Container ์์ ์์นํด ์๋ค.
Documents ๋๋ ํฐ๋ฆฌ๋ ์ญ์ , ๋ณ๊ฒฝ๋์ด๋ ๋ฌด๋ฐฉํ๊ณ ์ฌ์ฉ์๊ฐ ๋ค๋ฃจ๋ ์ปจํ ์ธ ์ ๊ด๋ จ๋ ํ์ผ๋ค๋ง ์ ์ฅํ๋ค. Realm์ ๊ธฐ๋ณธ์ ์ผ๋ก Document ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๋ค.
FileManager
์์์ ๊ฐ์ ๊ณ ์ ํ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์๋ค๊ณ ํ๋๋ฐ, ๊ทธ ๊ณ ์ ํ ๊ณต๊ฐ์ ์ ๊ทผํ๊ธฐ ์ํด FileManager๋ผ๋ ํด๋์ค๋ฅผ ์ด์ฉํ ์ ์๋ค. ์๋๋ Document ๋๋ ํฐ๋ฆฌ ์๋์ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ์ ๊ฑฐํ๋ ์ฝ๋ ์์์ด๋ค.
/// ์ด๋ฏธ์ง ์ ๊ฑฐ
func removeImageFromDocument(fileName: String) {
guard let documentDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
let fileURL = documentDirectory.appendingPathComponent(fileName)
do {
try FileManager.default.removeItem(at: fileURL)
} catch let error {
Logger.log(error, .error, "error occured")
}
}
/// ์ด๋ฏธ์ง ์ ์ฅ
public func saveImageToDocument(fileName: String, image: UIImage) {
guard let documentDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first else { return }
let fileURL = documentDirectory.appendingPathComponent(fileName)
guard let data = image.jpegData(compressionQuality: 0.5) else { return }
do {
try data.write(to: fileURL)
} catch let error {
print("file save err", error)
}
}
๋ฐฑ์ , ๋ณต๊ตฌ
๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ผ์ด๋นํ ์ ๋ณด์ด๊ฑฐ๋, ๋ฐ์ดํฐ์ ์ฌ์ด์ฆ๊ฐ ํฌ์ง ์์ ๊ฒฝ์ฐ์๋ ๋ก์ปฌ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค. ๊ทธ ์ธ์ ํน์ง์ ์ดํด๋ณด๋ฉด
- ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ๊ณต์ ๋ถํ์
- ๋ณ๋ ์๋ฒ์ ๋น์ฉ์ ์ง๊ธํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ
- ์ฌ์ฉ์๊ฐ ํ์๋ก ํ ๋ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ๋ก ๋ฐฑ์ ํ๋๋ก ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
๋ฐ์ดํฐ๋ ์ฑ์ด ์ญ์ ๋๋ ์๊ฐ, ๋ชจ๋ ์ ๊ฑฐ๋๊ธฐ ๋๋ฌธ์ ๋ฐฑ์ , ๋ณต๊ตฌ๊ฐ ํ์ํ๋ค.
์ธ๋ถ ์ ์ฅ์
- iCloud
- Google Drive, Dropbox ๋ฑ์ ์จ๋ ํํฐ ํด๋ผ์ฐ๋ ์๋น์ค
- ํ์ผ ์ฑ(๊ธฐ๋ณธ ์ฑ) + ShareActivity์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํฐ ์ฅ์ ์ด ์์
๋ฐ์ดํฐ ์ ๋ฌ (Protocol/Delegate)
ํ๋กํ ์ฝ์ ์ด์ฉํด์ ๋ฐ์ดํฐ ์ ๋ฌ์ ํ ์ ์๋ค. ์๊ฐ๋ณด๋ค ์์ฃผ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ๋ค.
- https://taekki-dev.tistory.com/36?category=917884
- https://github.com/Taehyeon-Kim/iOS-Wiki/tree/master/DelegateSample
- https://github.com/Taehyeon-Kim/iOS-Wiki/tree/master/DelegateSample2
- https://github.com/Taehyeon-Kim/iOS-Wiki/tree/master/DelegateSample3
'๐ฑ SeSAC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SeSAC] 220826 TIL (0) | 2022.08.29 |
---|---|
[SeSAC] 220825 TIL (0) | 2022.08.29 |
[SeSAC] 220823 TIL (0) | 2022.08.29 |
[SeSAC] 220822 TIL (0) | 2022.08.29 |
[Diary App: DDAK] ์ค๊ฐ ๊ธฐ๋ก (1) (0) | 2022.08.28 |