[SeSAC] 220824 TIL

2022. 8. 29. 18:59ยท๐ŸŒฑ SeSAC
๋ชฉ์ฐจ
  1. Document Directory
  2. FileManager
  3. ๋ฐฑ์—…, ๋ณต๊ตฌ
  4. ์™ธ๋ถ€ ์ €์žฅ์†Œ
  5. ๋ฐ์ดํ„ฐ ์ „๋‹ฌ (Protocol/Delegate)

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)
    }
}

 


 

๋ฐฑ์—…, ๋ณต๊ตฌ

๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋ผ์ด๋น—ํ•œ ์ •๋ณด์ด๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ํฌ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ๋กœ์ปฌ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉด ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ ์™ธ์— ํŠน์ง•์„ ์‚ดํŽด๋ณด๋ฉด

  • ์‚ฌ์šฉ์ž๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ  ๋ถˆํ•„์š”
  • ๋ณ„๋„ ์„œ๋ฒ„์— ๋น„์šฉ์„ ์ง€๊ธ‰ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ
  • ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”๋กœ ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ถ€๋กœ ๋ฐฑ์—…ํ•˜๋„๋ก ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ

๋ฐ์ดํ„ฐ๋Š” ์•ฑ์ด ์‚ญ์ œ๋˜๋Š” ์ˆœ๊ฐ„, ๋ชจ๋‘ ์ œ๊ฑฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฑ์—…, ๋ณต๊ตฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์™ธ๋ถ€ ์ €์žฅ์†Œ

  1. iCloud
  2. Google Drive, Dropbox ๋“ฑ์˜ ์จ๋“œ ํŒŒํ‹ฐ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค
  3. ํŒŒ์ผ ์•ฑ(๊ธฐ๋ณธ ์•ฑ) + 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
  1. Document Directory
  2. FileManager
  3. ๋ฐฑ์—…, ๋ณต๊ตฌ
  4. ์™ธ๋ถ€ ์ €์žฅ์†Œ
  5. ๋ฐ์ดํ„ฐ ์ „๋‹ฌ (Protocol/Delegate)
'๐ŸŒฑ SeSAC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [SeSAC] 220826 TIL
  • [SeSAC] 220825 TIL
  • [SeSAC] 220823 TIL
  • [SeSAC] 220822 TIL
taeeekki
taeeekki
๐ŸŒฑiOS ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๋Š” ํ•™์ƒ์ด ๋งŒ๋“œ๋Š” ๋ธ”๋กœ๊ทธ
taeeekki
taekki.dev
taeeekki
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • All (130)
    • ๐ŸŒฑ SeSAC (40)
    • โ˜€๏ธ 100DaysOfSwift (18)
    • ๐ŸŽ iOS & Swift (60)
    • ๐Ÿ“ฉ Essay (3)
    • ๐ŸŽ Tip (4)
    • ๐ŸŒˆ UIUX (2)
    • ๐Ÿง OOP (1)
    • ๐Ÿฅณ Side Project (0)
    • โœจ Problem Solving (1)
    • ๐Ÿ“ Note (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

์†ํŠธ
PageViewController
tableView
github
iOS UIUX
์˜ค์˜คํˆฌ๋‘
SeSAC
์˜ต์…”๋„
Diary App
100DaysOfSwift
network
iOS H.I.G
TIL
Realm
๊ฐœ์ธ ์•ฑ ์ถœ์‹œ
IOS
์Šค์œ„ํ”„ํŠธ ๋ฌธ๋ฒ•
OOTD
URLSession
iOS ์•ฑ ์ถœ์‹œ
๊นƒํ—ˆ๋ธŒ
GIT
github tip
์Šค์œ„ํ”„ํŠธ๋ฌธ๋ฒ•
swift
์Šค์œ„ํ”„ํŠธ
CollectionView
๊ฐœ๋ฐœ
ํด๋กœ์ €
commit

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLOยท Designed By์ •์ƒ์šฐ.v4.5.3
taeeekki
[SeSAC] 220824 TIL
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.