Struct를 JSON 형식으로 저장
앱을 닫아도 데이터가 남아 있습니다.

절차
1, Struct를 Codable로 하여 JSON 형식으로 인코딩, 디코딩할 수 있도록 한다.
struct Chocolates: Codable {
    var milk: String = " Mild and sweet. "
    var bitter: String = " Taste for the adult. "
    var white: String = " It's okay once in a while. "
    var numberOfMilk:Int = 0
    var numberOfBitter:Int = 0
    var numberOfWhite:Int = 0
    init(numberOfMilk milk:Int,numberOfBitter bitter:Int,numberOfWhite white:Int){
        self.numberOfMilk = milk
        self.numberOfBitter = bitter
        self.numberOfWhite = white
    } // 初めて作る時用イニシャライザ
// ここから下がJSON形式にエンコード・デコードできるようにする部分
    var json: Data? { // 自身のJSONにエンコードされた形式を返す計算プロパティ
        return try? JSONEncoder().encode(self)
    }
    init?(json: Data) { // 保存されたJSON形式のDataをデコードしてStructを復元するイニシャライザ
        if let newValue = try? JSONDecoder().decode(Chocolates.self, from: json) {
            self = newValue
        } else {
            return nil
        }
    }
}
2, Struct의 JSON 버전 만들기
var chocolates = Chocolates(numberOfMilk: 3, numberOfBitter: 1, numberOfWhite: 2)
let json = chocolates.json
3, File Manager로 쓰기 목적지 URL을 만들고 쓰기
guard let url = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true).appendingPathComponent("chocolates.json") else { return }
do {
    try json.write(to: url)
} catch let error {
    print(error)
}
4, 읽기
guard let url = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent("chocolates.json") else { return }
 do {
     let jsonData = try Data(contentsOf: url)
     var readChocolates = Chocolates(json: jsonData)
} catch let error {
     print(error)
}
🐣
일 상담 여기까지
 로쿠키 시코쿠 @ g 마이 l. 이 m
Core ML을 사용하여 앱을 만들고 있습니다.
기계 학습 관련 정보를 발신하고 있습니다.
 트위터
 Medium
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Struct를 JSON 형식으로 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/john-rocky/items/9dcf715f24f7e200115b
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
struct Chocolates: Codable {
    var milk: String = " Mild and sweet. "
    var bitter: String = " Taste for the adult. "
    var white: String = " It's okay once in a while. "
    var numberOfMilk:Int = 0
    var numberOfBitter:Int = 0
    var numberOfWhite:Int = 0
    init(numberOfMilk milk:Int,numberOfBitter bitter:Int,numberOfWhite white:Int){
        self.numberOfMilk = milk
        self.numberOfBitter = bitter
        self.numberOfWhite = white
    } // 初めて作る時用イニシャライザ
// ここから下がJSON形式にエンコード・デコードできるようにする部分
    var json: Data? { // 自身のJSONにエンコードされた形式を返す計算プロパティ
        return try? JSONEncoder().encode(self)
    }
    init?(json: Data) { // 保存されたJSON形式のDataをデコードしてStructを復元するイニシャライザ
        if let newValue = try? JSONDecoder().decode(Chocolates.self, from: json) {
            self = newValue
        } else {
            return nil
        }
    }
}
var chocolates = Chocolates(numberOfMilk: 3, numberOfBitter: 1, numberOfWhite: 2)
let json = chocolates.json
guard let url = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true).appendingPathComponent("chocolates.json") else { return }
do {
    try json.write(to: url)
} catch let error {
    print(error)
}
guard let url = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false).appendingPathComponent("chocolates.json") else { return }
 do {
     let jsonData = try Data(contentsOf: url)
     var readChocolates = Chocolates(json: jsonData)
} catch let error {
     print(error)
}
Reference
이 문제에 관하여(Struct를 JSON 형식으로 저장), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/john-rocky/items/9dcf715f24f7e200115b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)