2016년 10월 24일 월요일

Core Data, NSManagedObjectContext (Save the Data, Retrieve the Data) 사용 @@ in Swift3 - Xcode 8.0 iOS 10

오늘은 Core Data의 ManagedObject 에 데이터 저장 및 가져오기를 하도록 하겠습니다.

1.CoreData 프레임워크 import


2. ManagedObjectContext 얻기

Swift2.x
-------------------------------------------------------------------------------
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
==================================================================

Swift3
-------------------------------------------------------------------------------
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let managedContext = appDelegate.persistentContainer.viewContext
==================================================================

ManagedObjectContext 값을 getContext () 함수에 리턴 하도록 하자
-------------------------------------------------------------------------------
func getContext () -> NSManagedObjectContext {
   let appDelegate = UIApplication.shared.delegate as! AppDelegate
   return appDelegate.persistentContainer.viewContext
}
==================================================================

3. ManagedObject 에 데이터 저장 (Save the Data)
-------------------------------------------------------------------------------
func SaveData (nameC: String, ageC: Int) {
   //ManagedObjectContext 불러오기
   let context = getContext()
   //entity 설정
   let entity = NSEntityDescription.entity(forEntityName: "Item", in: context)
   let Itmes = NSManagedObject(entity: entity!, insertInto: context)
   //entity 값 설정 key 값 == entity 속성값 이름
   Itmes.setValue(nameC, forKey: "name")
   Itmes.setValue(ageC, forKey: "age")


// 객체 저장 하기
  do {
     try context.save()
     print("saved!")
     } catch let error as NSError {
        print("Could not save \(error), \(error.userInfo)")
  } catch {
     }
}

==================================================================

4. ManagedObject 에 데이터 가져오기 (Retrieve the Data)
-------------------------------------------------------------------------------
func getData () {
    //entity값에 대한 fetch request 생성
    let fetchRequest: NSFetchRequest<Item> = Item.fetchRequest()
 do {
    // 결과값 담기
    let searchResults = try getContext().fetch(fetchRequest)
    // for 문을 이용하여 Key 값에 대한 Value 값 가져오기
    for Items in searchResults as [NSManagedObject] {
    print("\(Items.value(forKey: "name"))")
    print("\(Items.value(forKey: "age"))")
    }
 } catch {
    print("Error with request: \(error)")
 }
}
==================================================================

댓글 없음:

댓글 쓰기

추천 게시물

애플 개발자 등록방법 2016년 5월 8일 기준!!

애플 개발자 등록 절차 1. 개발자 등록 페이지 이동    애플 개발자 로그인 > Account 페이지 이동 > 하단 영역 클릭 (이미지 참조)   >> Enroll 클릭 >> 무조건 승인!! ...