본문 바로가기
아이폰 개발/Swift

swift -Realm 예제 1 - 단순 CRUD

by 인생여희 2021. 4. 12.

swift -Realm 예제 1 

 

 

✅ UserInfo 테이블을 생성한다.

import Foundation
import RealmSwift

class UserInfo: Object {
    
    @objc dynamic var name = ""
    @objc dynamic var age = 0
    @objc dynamic var gender = ""
}

 

 

 

✅ 객체 저장

    func makeUserInfo(_ name:String, _ age:Int, _ gender:String) -> UserInfo {
        //Data 객체
        let userinfo = UserInfo()
        userinfo.name = name
        userinfo.age = age
        userinfo.gender = gender
        
        return userinfo
    }
    
    //저장
    @IBAction func save(_ sender: Any) {
        
        let kang = self.makeUserInfo("kang", 12, "남")
        let kim = self.makeUserInfo("kim", 22, "남")
        let park = self.makeUserInfo("park", 32, "남")
        
        try! realmInstance.write{
            realmInstance.add(kang)
            realmInstance.add(kim)
            realmInstance.add(park)
        }
        self.label.text = "저장완료"
    }

 

 

 

✅ 수정 - 업데이트 

    @IBAction func update(_ sender: Any) {
        
        //수정할 객체
        if let userinfo = realmInstance.objects(UserInfo.self).filter(NSPredicate(format: "name=%@", textField.text ?? "NO Rapper")).first{
            
            //수정할 내용
            try! realmInstance.write{
                userinfo.name = "tiger"
                userinfo.age = 56
                userinfo.gender = "여"
            }
            
            
            self.label.text = "\(textField.text!)가 tiger 로 변경되었습니다."
            
        }else{
            self.label.text = "없어요.."
        }
        
    }

 

 

✅ 삭제

    @IBAction func del2(_ sender: Any) {
        
        if let userinfo = realmInstance.objects(UserInfo.self).filter(NSPredicate(format: "name=%@", textField.text ?? "NO Rapper")).first{
            
            
            try! realmInstance.write{
                realmInstance.delete(userinfo)
            }
         
            self.label.text = "삭제되었씁니다."
            
        }else{
            print("없어요..")
        }
        
    }