학습 기록/swift

날짜 플래너: 앱 데이터 지속화하기

romi__ 2024. 10. 27. 21:08

📌Swift Playgrounds

 

 

📌 앱 데이터 지속화하기

- UserDefaults: 앱 상태 데이터의 간단한 저장을 담당한다. 재실행해도 유지해야 하는 데이터 저장에 유용.

 

- FileManager: 파일이나 이미지를 저장하거나 읽어오는 파일 관리 시스템. 파일 단위 데이터 저장에 유용하다. UserDefaults보다 더 큰 데이터를 다룰 수 있다.

 

- CoreData: 말하자면 데이터베이스 역할. 구조화된 저장과 복잡한 관계 처리 필요시 사용하는 프레임워크이다.

 

- AppStorage: UserDefaults에 데이터를 간단히 저장하고 자동 업데이트를 가능하게 한다. 데이터는 변수에 자동으로 저장되며, 뷰가 그걸 참고하여 자동적으로 업데이트된다.

 

 

 

 

📌 로컬 저장 공간에서 데이터 로드하기

 

- do-catch 구문: 오류 처리를 위한 구문

do {
    // 오류가 발생할 가능성이 있는 코드
    try someFunction()
} catch {
    // 오류 발생 시 처리할 코드
    print("An error occurred: \(error)")
}

 

오류가 발생할 가능성이 있는 코드는 do 파트에서 try로 던져준다. 오류가 실제로 발생하면 처리할 코드는 catch 파트에 넣어주어 오류를 처리한다.

 

아래의 예제 코드처럼 사용할 수 있다.

enum FileError: Error {
    case fileNotFound
    case insufficientPermissions
}

func readFile(filename: String) throws -> String {
    if filename == "" {
        throw FileError.fileNotFound
    } else if filename == "restricted.txt" {
        throw FileError.insufficientPermissions
    }
    return "File content here"
}

do {
    let content = try readFile(filename: "restricted.txt")
    print(content)
} catch FileError.fileNotFound {
    print("Error: The file was not found.")
} catch FileError.insufficientPermissions {
    print("Error: You don't have permission to read this file.")
} catch {
    print("An unexpected error occurred: \(error)")
}